P4210 F4211 End Doc Question

natalieroberge

Active Member
Hello Everyone,
We are currently upgrading from 9.0 to 9.2 and adding all customizations. in 9.0 we have customizations on the Post Button Clicked in the OK button in P4210 to loop thru all the lines of the order being created to update fields like VR01. What I have noticed in 9.2 that when the End Doc is executed in the Post Button Clicked the order does not exist in the table yet. When I am running debug I noticed that the order is only appearing at Post Commit at the level of the form. When I run debug in localhost HTML I see it in the Post Button Clicked - Aysncro but I receive errors.

My questions are :
Why does the order not appear anymore after End Doc is executed?
Why can't I do a copy paste into the Post Button Clicked Asyncho? JDE says it has been disabled for the section. Same for Post Commit

Where should I place my code to update the order without changing the Master Business Function?

The errors in debug I am receiving are in HTML localhost when the code moves from Post button clicked to Post button clicked Asynchro:
- ResumeProcess invocation error
- ER Engine Error: paused process is still executing)

Any incite would be appreciated.

Thanks

Natalie
 
Are you trying to update the order after EndDoc? Two things to keep in mind. EndDoc may be running Async (as it seems like you are aware from your post) and Transaction Processing may be on for P4210 and EndDoc may be within the TP boundary and changes not yet committed to the DB so if you are trying to query the results in F4211 from some tool or UTB, etc. you may not get any results for the order until after P4210 is finished and committed the transaction.
 
Hello Brian, Thanks for the reply.

I received a possible solution with the setup in the JAS.ini file concerning TransactionProcessingEnabled. The oracle document is
E1: 42: P42101 Sales Order Power Form Does Not Save Or Update the Orders When this Runs on Web (Doc ID 2501919.1)
 
Hello Brian, Thanks for the reply.

I received a possible solution with the setup in the JAS.ini file concerning TransactionProcessingEnabled. The oracle document is
E1: 42: P42101 Sales Order Power Form Does Not Save Or Update the Orders When this Runs on Web (Doc ID 2501919.1)

I would be very careful about making a global setting change in the jas.ini to fix one application and I certainly wouldn't want to disable transaction processing. Also this seems to reference P42101 not P4210.
 
I would second the comment from Brian about being careful disabling any form of transaction processing. Order Entry usually benefit greatly from it and disabling any form of Asynchronous processing could certainly achieve the result you are looking for and ensure that you get a record in F4201/F4211 before you leave P4210 but I can promise that in many sales order entry cases it can slow down the application greatly.
 
I would second the comment from Brian about being careful disabling any form of transaction processing. Order Entry usually benefit greatly from it and disabling any form of Asynchronous processing could certainly achieve the result you are looking for and ensure that you get a record in F4201/F4211 before you leave P4210 but I can promise that in many sales order entry cases it can slow down the application greatly.

If you determine it is an async thing and you want to keep your current design of updating the tables after EndDoc writes to them. Create a wrapper function around EndDoc that calls EndDoc and then does your table updates, then call your wrapper from P4210 that way you can preserve async processing.

However, IMO, the best thing to do is modify EndDoc itself to write out the values you want. That way if it is called from P4210, P42101, Z-Table, or anyplace else it writes to F4211 consistently and you only had to mod ONE thing - which is kind of the idea behind MBFs/functions in the first place.
 
Hello,

I would reiterate what others have said. To expand slightly on how managed customization on SOE can be done please see main points below:
  1. Place all custom code in a subsystem UBE, ideally each functional requirement should be controllable as proc option and call underlying NER/BSFN
  2. On P4210 process tab, "Subsystem processing option 9" add a new entry for the subsystem UBE (we use '9' for our 'R55XXXXX' subsystem)
  3. In End doc where the subsystem triggering is handled if option = '9' then call the R55XXXXX subsystem passing DOCO as RI value
The advantage of doing this is:
  • all order entry points are covered (EDI, manual, BSSV, ect..) in 1 central place
  • transaction handling is not an issue, call is only done after order has been correctly created
  • volumes are covered - this method can handle many thousands of orders per day
  • all complex logic is removed from standard objects (1 simple call to custom subsystem required)
  • proc options on T4210 are now changed except for text entry (so no mismatches anyway)
  • you can build as much post order entry logic and new status flows in your outbound stream can be triggered for picking/confirmationj/invoicing as necessary.

We have used this approach for some 20 years now and this is our key process.

Hope this helps

Andrew
 
I would be very careful about making a global setting change in the jas.ini to fix one application and I certainly wouldn't want to disable transaction processing. Also this seems to reference P42101 not P4210.
Hello
The solution was to make sure that it is enabled not disabled. In our current JAS.INI we do not have this flag at all, so adding it would ensure that it is enabled. Im still waiting to hear from Oracle on this.
 
Just a note, by default the setting is TRUE if nothing is in the INI

Craig
 
Thanks for the updates. The setting for us is TRUE and was not related to the issue.... I ended up moving the custom code to a custom button to be called after the Post Commit section in P4210 to update the records.
 
Back
Top