Programtically Create F3411 Record

radi8

Well Known Member
I have a requirement that requires that I create some F3411 records (outside R3483) to be processed by the R3411 batch. This table is a little quirky and I am looking for some tips on the best method of creating these records. What has me a little confused is the UKID. These values just appear odd as they are not exactly following the next numbering sequence.

I will be creating these records using a business function inside the R5642565 Acknowledgement Print program. Typically I would never want to do this but we have an unusual circumstance that requires it.

If anyone has had to create F3411 records can you advise on the best way to do so (specifically pertaining to this UKID value)?
 
From Oracle Community...

(We do not encourage direct insert data into F3411).


The way it gets UKID for F3411 is different from other applications because F3411 is table which stores MRP messages and multiple supply/demand keep on increasing UKID. If I can put it simply,
(Case 1. When MRP deletes records from F3411/F3412)
1. Check whether to delete it based on processing option of R3482/R3483 (#1. Clear F3411/F3412/F3413 Tables)
2. Read starting number from processing option (#8. Set Key Definition For Table F3411)
3. Insert a record into F3411 and increase UKID
(repeat this till R3482/R3483 write all record)

(Case 2. when mrp does not delete - possibly your business case) get it from F3411 from descending order through B3100490 (GetNextUniqueIDForMfg),
(OUT) mnUniqueKeyID
(IN) cSuppressErrorMessages (=1)
(IN) szTableName (=F3411)

1. Get the first value through B3100490
2. Insert and increase UKID
3. Insert and increase UKID
For this example, the biggest UKID can be getting by Table I/O Fetch Single.F3411 (descending of UKID by changing index) and add 1 for that value before you insert the 1st record.
 
Excellent explanation by Sean. Like Sean said find the largest UKID in F3411 and increment it by 1 to insert records. I am not sure what the purpose of inserting a record into F3411 is but you should be aware that there are associated tables F3412, F3413 which get updated by MRP. You may need to create records in these related tables too.

Thanks,
Matt
 
Guys, thank you so much! That was excellent.

I believe I can make this work now, much appreciated.

I am NOT a fan of doing this either, but this business case is a work around to some JDE functionality that does not fit our needs, so we do what we have to to get it to work.

I wish there was a better way. But to try and explain the reasoning would take too long.
 
Last edited:
I guess I fall into the realm with the other guys - what type of business-reason intentionally breaks the model of how you build a tricycle? You either build it with three wheels or you call it something else, right?
 
Back
Top