How to Populate Sales Order Detail Tag File (F49211) Based on Sales Order Detail File (F4211) in World Software to EnterpriseOne Data Migration

Goal

This document is a guide to populate F49211 (Sales Order Detail File - Tag File) based on F4211 (Sales Order Detail File) when open sales order data are from World Software. This is a necessary routine because F49211 is used as optional in World Software whereas same table is used tightly in EnterpriseOne. 

Table of Contents

Solution

Difference Between World Software and EnterpriseOne Software

In JD Edwards World, the transportation module (SY49) does not exist and the closest functionality existing is the ECS module. Since Transportation was completely redone (even in later releases of E1) there never has been any migration programs developed between ECS (Energy and Chemical System in World) and Transportation (E1). So in case you have implemented or are implementing the Transportation Module, it is very likely that you may hit the same error/problem through multiple applications in Sales.


Example of Data Migration 

Example of Data Migration from World Software to EnterpriseOne:

• Pre-World migration: F4211: 2,754,430; F49211: 21,925.

• Post-World/E1 migrations: F4211: 2,754,424; F49211: 21,925


Error in Sales Order Entry (P42101) When F49211 Missing

When the F49211 records are missing, an error is displayed managing open sales order through P42101 (Sales Order Entry)

Sales Order Detail (S421002C)

Error Record Invalid
A form level error has occurred.
CAUSE: The record being processed either already exists for an 'ADD'
function or does not exist for an 'INQUIRY', 'CHANGE' or
'DELETE' function.
RESOLUTION: If you are attempting to inquire, change or delete a record you
previously added, there may be data base problems in your
production library. You should notify your data processing
department.

ER Details:
Form P421002_S421002C
Control Id 20
Control Title SOLines
Event Get Custom Tree Node
Line No 16

BSFN Details:
Source File \DNVMGSC51\E910\PD910\package\ESU910A\source\B4201270.c
Source Line 654
Error ID 0002

 

This document will guide the user to populate F49211 as a temporary resolution to overcome this error and roughly explain the simplified routine of B4201270. 


Workaround to Overcome Record Invalid Error

Error '0002' via F49211MaintainSalesDetailTable (B4201270, F49211 Maintain Sales Detail Table) can be avoided if you turn off the Transportation Module as below,

  1. Go to P99410 (EnterpriseOne System Control)
  2. Look for Entry 'SY49' and Select it
  3. Select 'No' to disable it
  4. Reset database Cache

This workaround can be implemented only when the issue is specific to P42101 because B4201270 is called from B4210030 only when SY49 is active.


Why the Error is Specific to P42101 and not P4210

Currently the way it checks the existence of F49211 in P42101 is different from that of P4210 because P42101 is written through MVC Architecture routine which handles data as below,

S421002C for user interface
|--- (View) B4210620 - S421002C_SOLineViewController
         |--- (Controller) B4210900- SalesOrderApplCtrlEX
                   |--- (Model) B4210000, B4210030
                           |--- F49211MaintainSalesDetailTable (B4201270, F49211 Maintain Sales Detail Table)

The validation routine is specific to P42101


When F49211 Records Are Created in EnterpriseOne

When any sales order meets any of below condition, which calls business function F49211MaintainSalesDetailTable (B4201270, F49211 Maintain Sales Detail Table) which writes F49211 (Tag File),


How to Implement F49211 Based on Migrated Data

When any of above conditions met, then the relationship between F4211 and F49211 has to be 1 to 1. So populate it manually by mapping some columns as below,

Seq Alias Mapping (lpds) Data Dictionry Item During Sales Order Ship Confirmed Others
1 DOCO*   DocumentOrderInvoiceE (Document (Order No, Invoice, etc.)) lpdsF42UI11->zddoco   Primary Key 
2 DCTO*   OrderType (Order Type) lpdsF42UI11->zddcto   Primary Key
3 KCOO*   CompanyKeyOrderNo (Order Company (Order Number)) lpdsF42UI11->zdkcoo   Primary Key
4 LNID*   LineNumber (Line Number) lpdsF42UI11->zdlnid   Primary Key
5 VMCU szTripDepot CostCenterTrip (Depot - Trip)      
6 TRP mnTripNumber TripNumber (Trip Number)      
7 LOAD jdScheduledLoadDate DateLoaded (Date - Scheduled Load)      
8 DSGP szDispatchGrp DispatchGrp (Dispatch Group) F42UI11->zddsgp    
9 BPFG cBulkPackedFlag BulkPackedFlag (Bulk/Packed Flag)      
10 DSTN mnDistance Distance (Distance)      
11 UM szUnitOfMeasure UnitOfMeasure (Unit of Measure)      
12 DEFF cDeferredEntriesFlag DeferredEntriesFlag (Deferred Entries Flag)      
13 DUNC mnDeferredCost AmountDeferredCost (Amount - Deferred Cost)      
14 FDUC mnForeignDeferredCost AmountForeignDeferredCos (Amount - Foreign Deferred Cost)      
15 DREV mnDeferredRevenue AmountDeferredRevenue (Amount - Deferred Revenue)      
16 FDRV mnForeignDeferredRevenue AmountForeignDeferredRe (Amount - Foreign Deferred Revenue)      
17 ANUM mnAaiTableNumber AaiTableNumber (Number - AAI Table Number)   Hard Coded 4241  
18 SIDT jdScheduledInvoiceDate ScheduledInvoiceDate (Scheduled Invoice Date)      
19 INCY szInvoiceCycle InvoiceCycleCode (Invoice Cycle Code)      
20 LDDT jdLoadConfirmDate LoadConfirmDate (Load Confirm Date)   F4941.LDDT Transporation
21 LDTM mnLoadTime TimeLoad (Time - Load)   F4941.RSDT Transporation
22 DCDT jdDeliveryConfirmDate DeliveryConfirmDate (Delivery Confirm Date)   ADDJ - ActualShipDate Transporation
23 PCQY mnPrimaryCommittedQuantity UnitsPrimaryCommittedQua (Units - Primary Committed Quantity)      
24 UOMC szCommittedQuantityUOM UnitofMeasureCommittedQu (Unit of Measure - Committed Quantity)      
25 TEMP mnTemperature Temperature (Temperature)     N41B0450
26 STPU cTemperatureType StrappingTemperatureUnit (Temperature Type)      
27 DNTY mnDensity Density (Density)      
28 DNTP cDensityType DensityTypeAtStandardTem (Density Type - At Standard Temperature)      
29 DETP mnDensityTemperature DensityTemperature (Density Temperature)      
30 DTPU cDensityTemperatureType DensityTemperatureUnit (Temperature Type)      
31 VCF mnVolumeCorrectionFactor VolumeCorrectionFactors (Volume Correction Factor)      
32 PRAS cPriceatAmbiantorStandard PriceatAmbiantorStandard (Price at Ambient/Standard/Weight (A,S,W)) lpdsF42UI11->zdalph[23] if this value is blank then get default value from DD PRAS    
33 CP01 cSalesPriceBasedOnDate PricingBasedOnDate (Sales Price Based On Date) lpdsF42UI12->zddtbs    
34 IQTY mnInvoiceQuantity UnitsInvoiceQuantity (Units - Invoice Quantity) this is computation result by B4000520 which different Bulk stock with non-bulk; if if (lpdsF42UI12->zdalloc == _J('1')), then mnInvoiceQuantity = soqs + sone    
35 STUM mnStockUOM StockTotalinPrimaryUOM (Quantity - Primary Stock Accounting Unit)      
36 BUM6 szUM6 UnitofMeasure6 (Unit of Measure)      
37 AMBR mnAmbientVolume AmbientResult (Volume - Ambient)      
38 BUM3 szUM3 UnitofMeasure3 (Unit of Measure)      
39 WGTR mnWeightResult WeightResult (Weight Result)      
40 BUM5 szUM5 UnitofMeasure5 (Unit of Measure 5)      
41 FRTV cSupplierFreightCalculate VendorFreightCalculatedY (Supplier Freight Calculated)      
42 FRTD cCustomerFreightCalculate CustomerFreightCalculate (Customer Freight Calculated)      
43 FRCC mnCustomerFreightCharge AmountCustomerFreightCha (Amount - Customer Freight Charge)      
44 FRVC mnVendorFreightCharge AmountVendorFreightCharg (Amount - Supplier Freight Charge)      
45 PVEH szPrimaryVehicleId PrimaryVehicleId (Primary Vehicle Id)      
46 RLNO szRegistrationLicenseNum RegistrationLicenseNumbe (Registration/License Number)      
47 MCUR szBusUnitArDefault CostCenterArDefault (Business Unit - A/R Default)      
48 FLTN szFlightNumber FlightNumber (Flight Number)      
49 DSNN szDestination Destination (Destination)      
50 ARCT szAircraftType AircraftType (Aircraft Type)      
51 SORG szOrigin Origin (Origin)      
52 ELTM mnTimeElapsed TimeElapsed (Time - Elapsed)      
53 PTNR mnShipmentNumber ShipmentNumberB73 (Shipment Number)      
54 IAN8 mnBondIssuedAddress AddressNumberIssued (Address Number - Bond Issued) lpdsF42UI01->zhian8    
55 PTC szPaymentTerms PaymentTermsCode01 (Payment Terms Code) lpdsF42UI01->zhtrar    
56 DOC mnDocumentNumber DocVoucherInvoiceE (Document (Voucher, Invoice, etc.))      
57 DCT szDocumentType DocumentType (Document Type)      
58 KCO szDocumentCompany CompanyKey (Document Company)      
59 CRR mnExchangeRate CurrencyConverRateOv (Currency Conversion Rate - Spot Rate) lpdsF42UI01->zhcrrd    
60 CRCD szCurrencyCode CurrencyCodeFrom (Currency Code - From) lpdsF42UI01->zhcrce    
61 TXA1 szTaxRateArea TaxArea1 (Tax Rate/Area) lpdsF42UI01->zhtxa1    
62 EXR1 szTaxExplanationCode TaxExplanationCode1 (Tax Expl Code 1) lpdsF42UI12->zdexr1    
63 FRDM cForeignDomesticFlag ForeignDomesticFlag (International/Domestic Flag)      
64 FUPT szFuelingPort FuelingPort (Fueling Port)      
65 RINO szRegistrationIdentificati RegistrationIdentificati (Registration/Identification Number)      
66 GLOC szDeliveryLocation DeliveryLocationN (Delivery Location)      
67 AUTA szAuthorizationName AuthorizationName (Authorization Name)      
68 ALPH szAlphaName NameAlpha (Name - Alpha)      
69 MET1 szMeterTicket1 MeterTicket1 (Meter Ticket 1)      
70 OPN1 mnOpeningReading1 UnitsBeginningThroughput (Units - Beginning Throughput Qty. 1)      
71 PNR1 mnClosingReading1 ClosingReading1 (Closing Reading 1)      
72 MET2 szMeterTicket2 MeterTicket2 (Meter Ticket 2)      
73 OPN2 mnOpeningReading2 UnitsBeginningThroughpu2 (Units - Beginning Throughput Qty. 2)      
74 PNR2 mnClosingReading2 ClosingReading2 (Closing Reading 2)      
75 MET3 szMeterTicket3 MeterTicket3 (Meter Ticket 3)      
76 OPN3 mnOpeningReading3 UnitsBeginningThroughpu3 (Units - Beginning Throughput Qty. 3)      
77 PNR3 mnClosingReading3 ClosingReading3 (Closing Reading 3)      
78 ARDT jdDateArrival DateArrival (Date - Arrival)      
79 ARTM mnTimeArrival TimeArrival (Time - Arrival)      
80 DPDT jdDateDeparture DateDeparture (Date - Departure)      
81 DETM mnTimeDeparture TimeDeparture (Time - Departure)      
82 DSTJ jdDateStartJob DateStartJobJulian (Date - Start Job(Julian))      
83 STM mnStartTimeHHMM TimeBeginningHHMM (Time - Start (HH/MM))      
84 END jdDateEnding DateEnding (Date - Ending)      
85 ETM mnEndTimeHHMM TimeStopHHMM (Time - End (HH/MM))      
86 TV01 cLineOrigin FutureUse01t (Sales Detail Line Origin)      
87 TV02 cFutureUse02 FutureUse02t (Future Use 02)      
88 TV03 cFutureUse03 FutureUse03t (Future Use 03)      
89 TV04 cFutureUse04 FutureUse04 (Future Use 04)      
90 TV05 cFutureUse05 FutureUse05 (Future Use 05)      
91 TVCD szFutureUseCode FutureUseCode (Future Use Code)      
92 TVQT mnFutureUseQuantity FutureUseQuantityt (Future Use Quantity) (OTM is in USE) dsD4277753A.mnPercenttoFill    
93 TVDT jdFutureUseDate FutureUseDate (Future Use Date)      
94 TVUM szFutureUseUnitofMeasure FutureUseUnitofMeasure (Future Use Unit of Measure)      
95 USER szUserId UserId (User ID) lpdsF42UI11->zduser    
96 PID szProgramId ProgramId (Program ID) lpdsF42UI11->zdpid    
97 JOBN szWorkStationId WorkStationId (Work Station ID) lpdsF42UI11->zdjobn    
98 UPMJ jdDateUpdated DateUpdated (Date - Updated) lpdsF42UI11->zdupmj    
99 TDAY mnTimeOfDay TimeOfDay (Time of Day) lpdsF42UI11->zdtday    
100 SBCK cCheckSellByDate CheckSellByDate (Check Sell By Date) SAR 4579777, when lpdsF42UI02->cSystemShipAscendingDate == _J('1'), then lpds4200310D->cCheckSellByDate    
101 EDCK cCheckExpirationDate CheckExpirationDate (Check Expiration Date) lpds4200310D->cCheckExpirationDate    
102 CMDM cCommitmentDateMethod CommitmentDateMethod (Commitment Date Method) lpds4200310D->cCommitmentDateMethod    
103 BBCK cCheckBestBeforeDate CheckBestBeforeDate (Check Best Before Date) lpds4200310D->cCheckBestBeforeDate    
104 RQSJ jdDateRequestedShip DateRequestedShip (Date - Requested Ship)      
105 PSDJ jdDatePromisedShipJu DatePromisedShipJu (Date - Future Date 2)      
106 ADLJ jdDateActualDelivery DateActualDelivery (Date - Actual Delivery)      
107 SUB szSubsidiary Subsidiary (Subsidiary)      
108 STTS szLineStatus_2 LineStatus (Line Status)      
109 RATT cRateTypeFreightMisc RateTypeFreightMisc (Rate Type - Freight/Misc)      
110 FUF1 cApplyFreight ApplyFreight (AIA Document Flag) lpdsF42UI12->zdaft    
111 FRTC cFreightCalculatedYN FreightCalculatedYN (Freight Calculated (Y/N))      
112 FRAT szRateCodeFrieghtMisc RateCodeFrieghtMisc (Rate Code - Frieght/Misc)      
113 AFT cApplyFreightYN ApplyFreightYN (Apply Freight - Y/N)      
114 OMCU szPurchasingCostCenter PurchasingCostCenter (Project Business Unit)      
115 OBJ szObjectAccount ObjectAccount (Object Account)      
116 LT szLedgerType LedgerType (Ledger Types)      
117 FAPP cDiscntApplicationType DiscntApplicationType (Discount Application Type)      
118 DSPR mnDiscountFactor DiscountFactor (Discount Factor)      
119 DSFT cDiscountFactorTypeOr DiscountFactorTypeOr (Discount Factor Type - $ or % (D/P))      
120 DMT1 szContractNumberDistrsecoN ContractNumberDistrsecoN (Agreement Number - Distr. (secondary))      
121 DMS1 mnSecondarycontractsupp Secondarycontractsupp (Agreement Supplement - Dist. (Secondary))      
122 COT szConditionsOfTransport ConditionsOfTransport (Conditions of Transport)      
123 CMGL cAllocateByLot AllocateByLot (Commitment Method)      
124 BALU cContractBalancesUpdatedY ContractBalancesUpdatedY (Contract Balances Updated Y/N)      
125 APOT mnActualPotency ActualPotency (Actual Potency)      
126 ACGD szActualGrade ActualGrade (Actual Grade)      
127 ANI szAcctNoInputMode AcctNoInputMode (Account Number - Input (Mode Unknown))      
128 AID szAccountId AccountId (Account ID)      
129 OPOL   OPOriginalLineNumber (OP Original Line Number) B4205050 but no actual implemenation    
130 OPBO   OPBusinessObjective (OP Business Objective) B4205050    
131 OPID   OPScenarioID (OP Scenario ID) B4205050    
132 OPCS   OPCost (OP Cost) B4205050    
133 OPLL cOPPartialShipLineItems OPPartialShipLineItems (OP Partial Ship Line Items) SAR 5814943 - ORDER PROMISING BEGINS, lpdsF42UI12->zdopll    
134 OPMS cOPAllowMultiSource OPAllowMultiSource (OP Allow Multi Source) lpdsF42UI12->zdopms    
135 OPSS cOPAllowSubstitutes OPAllowSubstitutes (OP Allow Substitutes) lpdsF42UI12->zdopss    
136 OPBA cOPAllowBackorders OPAllowBackorders (OP Allow Backorders) lpdsF42UI12->zdopba    
137 FXSR   FixSourceLocation (Fix Source Location) B4205050    
138 OPMG szOPMultiSourceGroup OPMultiSourceGroup (OP Multi Source Group) lpdsF42UI12->zdopmg    
139 OPSG szOPShippingGroup OPShippingGroup (OP Shipping Group) lpdsF42UI12->zdopsg    
140 OPYN cOPPromiseLineYN OPPromiseLineYN (OP Promise Line (Y/N)) lpdsF42UI12->zdopyn    
141 OPSU   OPAllowSplitUOM (OP Allow Split UOM) B4205050    
142 PSJOBNO szProdSeqJobNo ProdSeqJobNo (Production Sequencing Job Number) SAR 7758877, lpdsF42UI12->zdpsjobno    
143 JOBSQ szJobSequence JobSequence (Job Sequence Number) lpdsF42UI12->zdjobsq    
144 CARDNO szCardNumber CardNumber (Card Number) lpdsF42UI12->zdcardno    
145 DELBATCH szDeliveryBatchNumber DeliveryBatchNumber (Delivery Batch Number) lpdsF42UI12->zddelbatch    

 

Note

F49211MaintainSalesDetailTable (B4201270,  F49211 Maintain Sales Detail Table)

cActionCode

 

if ((lpdsF42UI11->zdactn == _J('D')) ||
((lpdsF42UI11->zdactn == _J('P')) &&
(MathZeroTest(&lpdsF42UI11->zdrkit) == 0)))
{
       dsD4201270.cPurgeToHistory = _J('1');
}
 

For ship confirmation - N4200790

LoadOrUnloadShipConfirmCache (B4200810, Load Or Unload Ship Confirm Cache)


/* bug 14163706 - If Sales Order is ship confirmed, get the Invoice quantity from F49211 table */
if(lpdsF42UI11->zdalph[2] == _J('1'))
{
         idReturnValue = I4200310_GetF49211Record(lpBhvrCom, lpVoid,
                                              &dsD4201270,
                                              &mnInvoiceQty);
}