I’m attempting to use the olingo library in java to integrate with IFS. The main task I’m attempting to accomplish at first is to add multiply master parts in one REST request. I’ve managed to navigate the api enough to get it to form a batch request and send it off to IFS however I get a weird error response that makes no sense and leads me nowhere. Has anyone else seen this?
Batch Request raw payload
--batch_ad5ae8cb-87e6-4f1e-9660-72770abad95f
Content-Type: multipart/mixed;boundary=changeset_a3c57785-5e5b-4771-9cc2-a57e779d77ff
--changeset_a3c57785-5e5b-4771-9cc2-a57e779d77ff
Content-Type: application/http
Content-Transfer-Encoding: binary
Content-ID:1
POST https://{{ifsurl}}/main/ifsapplications/projection/v1/PartHandling.svc/PartCatalogSet HTTP/1.1
Accept: application/json;odata.metadata=full
Content-Type: application/json;odata.metadata=full
OData-MaxVersion: 4.0
OData-Version: 4.0
Content-ID: 1
{"@odata.type":"#IFS.Part","PartNo@odata.type":"String","PartNo":"partNumber1","Description@odata.type":"String","Description":"description1","UnitCode@odata.type":"String","UnitCode":"PCS","CatchUnitEnabled@odata.type":"Boolean","CatchUnitEnabled":false,"ReceiptIssueSerialTrack@odata.type":"Boolean","ReceiptIssueSerialTrack":false,"EngSerialTrackingCode@odata.type":"String","EngSerialTrackingCode":"NotSerialTracking","SerialTrackingCode@odata.type":"String","SerialTrackingCode":"NotSerialTracking","Configurable@odata.type":"String","Configurable":"NotConfigured","ConditionCodeUsage@odata.type":"String","ConditionCodeUsage":"NotAllowConditionCode","LotTrackingCode@odata.type":"String","LotTrackingCode":"NotLotTracking","MultilevelTracking@odata.type":"String","MultilevelTracking":"TrackingOff"}
--changeset_a3c57785-5e5b-4771-9cc2-a57e779d77ff
Content-Type: application/http
Content-Transfer-Encoding: binary
Content-ID:2
POST https://{{ifsurl}}/main/ifsapplications/projection/v1/PartHandling.svc/PartCatalogSet HTTP/1.1
Accept: application/json;odata.metadata=full
Content-Type: application/json;odata.metadata=full
OData-MaxVersion: 4.0
OData-Version: 4.0
Content-ID: 2
{"@odata.type":"#IFS.Part","PartNo@odata.type":"String","PartNo":"partNumber2","Description@odata.type":"String","Description":"description2","UnitCode@odata.type":"String","UnitCode":"PCS","CatchUnitEnabled@odata.type":"Boolean","CatchUnitEnabled":false,"ReceiptIssueSerialTrack@odata.type":"Boolean","ReceiptIssueSerialTrack":false,"EngSerialTrackingCode@odata.type":"String","EngSerialTrackingCode":"NotSerialTracking","SerialTrackingCode@odata.type":"String","SerialTrackingCode":"NotSerialTracking","Configurable@odata.type":"String","Configurable":"NotConfigured","ConditionCodeUsage@odata.type":"String","ConditionCodeUsage":"NotAllowConditionCode","LotTrackingCode@odata.type":"String","LotTrackingCode":"NotLotTracking","MultilevelTracking@odata.type":"String","MultilevelTracking":"TrackingOff"}
--changeset_a3c57785-5e5b-4771-9cc2-a57e779d77ff--
--batch_ad5ae8cb-87e6-4f1e-9660-72770abad95f
Content-Type: application/http
Content-Transfer-Encoding: binary
GET PartCatalogSet HTTP/1.1
Accept: application/json
Content-Type: application/json;odata.metadata=full
OData-MaxVersion: 4.0
OData-Version: 4.0
--batch_ad5ae8cb-87e6-4f1e-9660-72770abad95f--
The response payload:
--batch_28f534cc-42dd-4e81-8cc4-67d241e04386
Content-Type: application/http
Content-Transfer-Encoding: binary
Content-ID: 1
HTTP/1.1 400 Bad Request
OData-Version: 4.0
Content-Type: application/json
Content-Length: 253
{"error":{"code":"REQUEST_ERROR","message":"Malformed Request.","details":"{"code":"UNKNOWN_CONTENT","message":"Missing replacement for place holder in message ''%1$s' can not be mapped as a property or an annotation.' for following arguments ' ]'!"}]}}
--batch_28f534cc-42dd-4e81-8cc4-67d241e04386--
The missing replacemnt for place holder makes no sense to me, can anyone enlighten me as to what this is telling me?