I’m trying to issue material to a job through REST. I’m getting an error message:
{“HttpStatus”:400,“ReasonPhrase”:“REST API Exception”,“ErrorMessage”:"You cannot issue parts of UOM Class SHEET that require UOM Class ",“ErrorType”:“Ice.Common.BusinessObjectException”,“ErrorDetails”:[{“Message”:"You cannot issue parts of UOM Class SHEET that require UOM Class ",“Type”:“Error”,“Program”:“Erp.Services.BO.IssueReturn.dll”,“Method”:“validatePartNum”,“ColumnNumber”:29,“LineNumber”:14191}],“CorrelationId”:“c960efa8-e79d-477a-b7cc-5b3e8f228c22”}
My code is:
url = f"{self.base_url}/api/v2/odata/{company}/Erp.BO.IssueReturnSvc/GetNewIssueReturn"
entity:dict = {
'pcTranType': 'STK-MTL',
'pcMtlQueueRowID': "00000000-0000-0000-0000-000000000000",
'pCallProcess': 'IssueMaterial',
'ds': {}
}
print(f"Making POST request to: {url}")
post_response = self.session.post(url, json=entity, auth=self.auth, verify=False)
if post_response.status_code != 200:
raise HTTPException(
status_code=status.HTTP_500_INTERNAL_SERVER_ERROR,
detail=f"Failed to get new issue return - {post_response.status_code} {post_response.reason} {post_response.content}",
headers={"WWW-Authenticate": "Basic"}
)
data = post_response.json()
trans_row:dict = data['parameters']['ds']['IssueReturn'][0]
trans_row.update({
'RowMod': 'A',
'UM': 'SQIN',
'DimConvFactor': 1.0,
'Company': company,
'PartNum': mtl_part_num,
'TranQty': qty,
'FromWarehouseCode': from_warehouse,
'FromBinNum': from_bin,
'ToJobNum': job_num,
'ToAssemblySeq': asm_seq,
'ToJobSeq': mtl_seq,
"TranType": "STK-MTL"
})
data = {
'plNegQtyAction': True,
'ds': {
'IssueReturn': [
trans_row
]
}
}
url = f"{self.base_url}/api/v2/odata/{company}/Erp.BO.IssueReturnSvc/PerformMaterialMovement"
print(f"Making POST request to: {url}")
post_response = self.session.post(url, json=data, auth=self.auth, verify=False)
if post_response.status_code != 200:
raise HTTPException(
status_code=status.HTTP_500_INTERNAL_SERVER_ERROR,
detail=f"Failed to issue material - {post_response.status_code} {post_response.reason} {post_response.content}",
headers={"WWW-Authenticate": "Basic"},
)
else:
print(f'Material issued successfully - ({post_response.status_code} {post_response.reason} {post_response.content})')
data = post_response.json()
print(json.dumps(data))
return None
The part (#100013) has a UIM code of SQIN and a UOM class of SHEET.
Anyone have a clue what’s going on here?