If Container Information is passed in the manageItem API input, then the application throws API security violation error.
How to overcome the error and use manageItem API to create containers (that can be used for packing)?
While creating containers (used for packing using) in Application Manager, "Use this as a container for packing" flag needs to be checked. This would allow user to configure the container details in the Container Attributes Tab.
However if container is being created using manageItem API and the respective container information is passed in the input (sample input given below), it would result in API Security violation exception. This is because the ContainerInformation element is not exposed in manageItem API.
The following is the sample xml for the manageItem API to create the Container and provide the containerDetails at the sametime.
<Item Action="CREATE" ItemID="SMALL_CARTON" ItemKey="SMALL_CARTON" OrganizationCode="DEFAULT" UnitOfMeasure="EACH" IsShippingCntr="Y"> <PrimaryInformation Status="3000" ShortDescription="A Small Container For SS" Description="SHIPPING CONTAINER" UnitHeight="100" UnitHeightUOM="IN" UnitLength="100" UnitLengthUOM="IN" UnitWeight="0" UnitWeightUOM="KG" UnitWidth="100" UnitWidthUOM="IN" />
<ContainerInformation ContainerType="" CapacityVolume="100000000" CapacityVolumeUom="CIN" MaxCntrWeight="100000" MaxCntrWeightUom="KG" /> </Item>
Resolving the problem
To resolve the issue containerInformation element needs to be exposed for manageItem API as given below.
1 ) create/modify the
<YFS_RT>/extensions/global/template/apisecurity/manageItem_input.xml file to include the <ContainerInformation> element (YFS_RT refers to Foundation installation directory).
2) Rebuild the resources jar.
3) Rebuild the ear/war file
4) Deploy the ear/war file.