E9.1 Manually Hold Code On Order

FrankCLT

Well Known Member
Hi All,

I know of the B4200310 and the B4200420 placing orders on hold, but depending on other criteria, we may need to place orders on hold for a variety of reasons manually, I would think that would be inserting into the F4209 and updating the F4201.SHHOLD with whatever the code is. Does JD have anything out of the box and outside of the functions mentioned earlier?

Thank you,
FrankCLT
 
Hi Frank,
From your post... we may need to place orders on hold for a variety of reasons manually.
Well if it's manually you shouldn't need to worry about coding. If you enter a Hold Code against an existing (or new order) in the Order Header Revisions screen of either P4210 or P42101 and press OK through the order screens it will put that order on hold.
If you want to streamline this process you could consider Orchestrator. A relatively simple P4210 script, using the same manual steps I mentioned above to put an Order On Hold, is a nice easy way to start using this functionality. Once created you can then start calling this Orchestrator (passing the Order Number) using multiple methods is then available. Tools releases now exist where you can trigger a Orchestration from a button an existing screens using Form Extensions (without mods), API calls from external apps can call Orchestrator scripts (including Excel), UBE's calling B98ORCH can call your new script, are just a few examples....
Hope this helps
 
B3100260 Update Sales Order Hold Code updates both the F4201 and the4 writes to the F4209 in one go, if that's what you're after? It calls B4001100

Or...If you mean you want to add more than one hold code to SOs, you can't do that.....unless!
You write what I wrote which is a supplemental hold code table F554209. (but this was for locations and lots)

We then locked down everywhere in E1 that allows you to set LOTNs on hold. But there is no reason why your couldn't then add on an orchestration as mentioned above to go off and write records to this supplemental table/F4209.

But E1 itself out of the box does not allow you to add more than hold code to a SO header, no. You can add loads to F4209 I guess, but then you need a way to clear and release them
 
HI All,

I did look at the B3100260, it did update the F4201.SHHOLD but it didn't create a F4209 record. The F4209 did have released records from previous holds I tested with. Don.t know if that could cause it not to write.

Just tested that theory, removed all records from the F4209 for the order I am testing with and the BSFN (B3100260) still doesn't write to the F4209

Thank you,
FrankCLT
 
Last edited:
Use B3100260 to write the FIRST hold code and update F4201, then for subsequent hold code just call B4001100

Did you check it all the way through? It checks stuff to make sure it's valid. Did you check to see if hold code test lives on F42008 for the MCU of your order? (F42008 Order Hold Constants)

I just tested this for you by calling B4001100 Write Hold Code directly, not via B3100260, it works!! :)
As long as the code lives on F42008 for that MCU, you seem to be ok and can add more than one to F4209. Even at Line or order level

I mapped in the following (all from F42008) and got 2 hold codes for the order, even 3 on another test to make sure

Library: COPBASE
Function: B4001100.WriteHoldCode (F4209 Write Hold Codes)
----------------------------------------------------------------------------------------------------------------------------------------------------------------
Index Alias Parm Name Type Value In Value Out
----------------------------------------------------------------------------------------------------------------------------------------------------------------
1 MCU szBranchPlant String(12) 211 211
2 HOLD szHoldCode String(2) CH CH
3 AN8 mnSupplierNumber Math Numeric(8) 167165 167165
4 TRDJ jdTransactionDate Date(6)
5 DRQJ jdRequestedDate Date(6)
6 PDDJ jdPromisedDate Date(6)
7 SFXO szOrderSuffix String(3)
8 DCTO szDocumentType String(2) SN SN
9 DOCO mnDocumentNumber Math Numeric(8) 1003 1003
10 KCOO szKeyCompany String(5) 00211 00211
11 LNID mnOrderLineNumber Math Numeric(6)
12 ITM mnShortItemNumber Math Numeric(8)
13 LITM szLongItemNumber String(25)
14 AITM szThirdItemNumber String(25)
15 CTYP szHoldCodeType String(2)
16 RPER mnResponsiblePerson Math Numeric(8) 290367 290367
17 DLNID mnDistributionLineNumber Math Numeric(6)
18 PA8 mnParentAddressNumber Math Numeric(8)
19 SHAN mnShipToAddressNumber Math Numeric(8)
 
I was missing a record from the F42008, added it and things appear to be working normally. I will do some additional test by added\releasing hold codes and evaluate the results.

Thank you all for the quick recommendations.

FrankCLT
 
Hi All,

One more question, on a SD or a Direct Ship order, will placing the SD on hold automatically placed the, PO side on hold as well when using the, (I’ve been using the B3100260 I think) ? That is a scenario brought to my attention today.

Thanks again all,
FrankCLT
 
Hi All,

Can't seem to get the SD\OD working as I thought it should.

1. I placed a customer on a C2 Hold under Billing Information - Tab 2
2. Create SD\OD order
3. F4201.SHHOLD = C2 - Record exists in the F4209 for SD order
4. F4301.PHHOLD = Blank - Shouldn't the C2 move to the F4301 as well?
5. Should the F4209 have a record for the corresponding OD

Thank you,
FrankCLT
 
Not always

Hold Codes

Question 1: When a credit hold is applied to a Direct Ship order (SD), will the OD be put on the same hold?

Answer 1: Yes, the related purchase order will be put on the credit hold when the Direct Ship order is put on credit hold.


Question 2: When a hold code is reapplied to a Direct Ship order (SD), is the hold reapplied to the OD?

Answer 2: No, the current SD Order Hold Update will only apply to new entries or in add mode. The proposed workaround is to cancel the original sales order line, and then add a new sales order line as a replacement.
 
I did see that.

I may go a different route. If I were to manually update the PHHOLD and the SHHOLD for a SD order type, where would the best place to put the code to do this? If this was a new order, the F42 and I assume the F43 records haven't been created until the EndDoc runs. Also, to complicate things even more, we use Smarter Commerce Credit Card application, and they incorporated their own twist to the EndDoc at the P4210 OK Post Button Click Asynch.

Ideas?

Thank you all again,
FrankCLT
 
I wouldn't know where best to add it
Can you create an orchestration to run after the end doc? Or mod your end doc (not the best idea I've had lol)
 
Not very experienced with orchestrator.....I will tinker a bit and see what happens.
 
Back
Top