Question

Receiving Shop Order Using Rest API

  • 2 October 2022
  • 3 replies
  • 323 views

Userlevel 7
Badge +21

Hello,

 

We are currently using IFS Application 10 Update 15 and I’m trying to provide some automation to our production lines by receiving in product into inventory from the shop order as it passes a sensor on the production line.   I’m using Postman to test to get an understanding of the API’s and data I need to pass to successfully receive product into inventory.   When I call the API below I get a 201 Created status so it appears the API is successful.   But when I look in the quantity in stock screen I do not see the inventory in the location nor is the shop order qty completed and qty remaining information updated so something isn’t correct.   I’m using basic authentication at the moment until I can get everything working in Postman.

 

I’m trying to use the project below.

<my server>/int/ifsapplications/projection/v1/ReceiveShopOrderHandling.svc/ReceiveShopOrderSet 

 

Here’s the body I’m sending along with the API call.

{
"Contract": "OM1SH",
"OrderNo": "54817",
"ReleaseNo": "*",
"SequenceNo": "*",
"PartNo": "74818",
"LotBatchNo": "54817-*-*-1",
"QtyToReport": 1,
"QtyToReceive": 1,
"UoM": "CASE",
"LotSize": 3680,
"Location": "777",
"Backflush": false,
"SimplifiedMaterialCheck": false,
"AutoReportOperations": true,
"PartSerialization": false,
"MilestoneOnly": false,
"ClockingsInSeqStopped": false,
"OutsideOperation": false,
"ReportPreviousOperation": false,
"ReportPreviousOperEnabled": false,
"CloseOperation": false,
"ReceiveShopOrd": true,
"ReceiveByproducts": false,
"ReportTime": false,
"RegisterTimeForEmpl": false,
"LaborSetupTimeEnabled": false,
"LaborTimeEnabled": false,
"StopClockings": false,
"MachineTime": false,
"LaborTime": false,
"CloseShopOrder": false,
"BackgroundJob": false,
"Pack": false,
"IsPossibleToPack": false,
"IsMultilevelTrackingEn":false,
"IsConditionCodeEnabledPart": false,
"IsCatchQtyEnabledPart": false,
"AnalysisExist": false,
"ReceiveType": "LOT",
"InputOrderNo": "54817",
"InputReleaseNo": "*",
"InputSequenceNo": "*"
}

 

Regards,

William Klotz


3 replies

Userlevel 4
Badge +9

Hi @william.klotz ,

It looks like this API is built for an assistant (wizard) in the web UI. APIs used by assistants are somewhat special in that the data in each step of the assistant is stored temporarily in a staging table called a “virtual” until the assistant is completed successfully. The 201 Created you get is when the record is created in this staging table as part of an intermediate step of the assistant.

The actual table in the DB is not updated until the user clicks “Finish”  on the assistant.

 

There are two possible options here:

  1. Use an alterative API which is not designed particularly for assistants (simpler and preferred for integration scenarios)
     
  2. Simulate API calls done in the assistant step by step including the “Finish” step

 

Here’s a similar question raised sometime back.

 

Userlevel 7
Badge +21

Hi @Rifki Razick ,

 

Ok,  that makes sense I captured the rest api's used by Arena when performing a manual receive from shop order and I see quite a number of Get, Post and a patch.  Pretty involved process and not ideal for integration.   I was hoping to find something simple like the following.

/int/ifsapplications/projection/v1/ReceiveShopOrderHandling.svc/ReceiveShopOrder. where we would send order no., release no., sequence no.,  qty to receive, site, location no and lot batch no.

 

I do not see another API to receive shop order output into inventory.   Do you know of an API I should use to accomplish the task?   I wonder if WaDaCo uses Rest API's.   WaDaCo has a receive shop order capability we use it now to manually receive product.

Regards,

William Klotz

Userlevel 7
Badge +23

In 22R2 release a dedicated Premium API called ShopFloorConnector was added with one action ReceiveOrder dedicated to make shop order receipts. Hope this will help! 

Reply