Inventory Transfers Multi-Line interface for JD Edwards
About the Inventory Transfers Multi-line interface
This interface stores and processes multiple Inventory Transfer transactions using the work table FD3N4113.
When these transactions are processed, material is moved from one or more inventory locations to one or more different inventory locations. When these transactions are processed from the work file, the corresponding Item Ledger (Cardex) entries can be recorded within the same Batch Number/Document Number. The MEP version is called ND3N4113. This interface was written in NER, and calls a ‘C' business function, BD3N4101, to retrieve the processing options from the interactive program P4113.
Name | Function name | Description |
---|---|---|
DD3N4113 | dcLINK Interface - Inventory Transfers | |
FD3N4113 | dsi Interface - Inventory Transfers Multi-Line | |
ND3N4113 | dcLINKInventoryTransfers | dcLINK Interface - Inventory Transfers |
ND3N4113 | dsiInventoryTransfersMultiLine | dcLINK Interface - Inventory Transfers |
DD3N4101 | PO Retrieval - Inventory Transfer | |
BD3N4101 | PORetrievalInventoryTransfer | PO Retrieval - Inventory Transfer |
This interface is written to support multi-line transactions grouped together by the Transaction Number. The function creates one EnterpriseOne batch for all the multi-line transactions with a shared document number. It then performs one Begin Document function call, multiple Edit Line calls, one End Document call, a Clear Cache call, and then the Work File records are deleted. If an error is encountered while processing, the function performs a Clear Cache and leaves the Work File records.
In EnterpriseOne, the corresponding application that you would run to perform an inventory transfer is P4113 Inventory Transfers. This application can be accessed from the G4111 menu (Inventory Master/Transactions).
This interface guide applies to the following JDE versions.
-
EnterpriseOne 9.1 and above
Processing options
Processing options control certain aspects of how the interface functions, both within EnterpriseOne, and through the interface. It is important, when testing the interface, when the transaction is run through the corresponding EnterpriseOne application utilizing the same version, that you receive the identical result.
Defaults tab
Document Type - This is the document type that will default for the transaction if a document type is not passed into the interface. This is validated against the UDC 00/DT. Typically, you allow the document type to default from this value into the interface and to not be manually entered. szDocumentType_DCT
From Location/Lot - If there is a value of 1 in this field, and no “from” lot or “from” location is passed in the interface, it will use the location and lot from the primary location. DefaultFROMPrimLocation_EV01
To Location/Lot - If there is a value of 1 in this field, and no “to” lot or “to” location is passed in the interface, it will use the location and lot from the primary location. cDefaultTOPrimLocation_EV01
Versions tab
Journal Entries - This value is used to look up the general ledger MBF version, which in turn is passed into the Edit Line. szJournalEntriesVersion_VL01
Process tab
Cost Entry - This value is used to specify whether the interface will allow changes to the unit cost and extended amount fields. Valid values are: 1 - do not allow entry and use the default values from the Cost Ledger Table F4105; and blank - allows entry into the cost fields. cProtectCosts_EV03
Journal Entries - This value is used to specify whether the journal entry that is created should be summarized or not. This field is passed into the End Doc MBF. cSummaryMode_EV04
Lots on Hold - This value is used to specify whether the interface will allow a transfer if the lot is on hold. Valid values are: 1 - allow transfers from/to lots on hold; and blank - do not allow transfers from/to lots on hold unless the lot status is defined in a lot group. cAllowHeldLots_EV05 and PO_szLotGroup_LOTGRP
Transfer Quantity - This value determines the conditions where transfers are allowed. A value of blank disallows transferring if the quantity available is negative. A 1 allows transferring if there is a negative quantity available. A 2 disallows transfers if the quantity on hand is negative. The option is passed into the Edit Line MBF. cAllowOverQtyAvailable_EV06
Lot Status Default - This value determines whether the interface implements a default lot status. A value of 1 says to not default the lot status from the “from” location. A value of blanks does default the lot status from the “from” location. cPODefaultLotStatus_Ev07
Warehouse tab
License Plate Number Generation Method - There are four different methods for creating license plates. Use 01 if you are planning on calling the MEP interface ND3N6L30 to build your license plates. If you want to let the system create the license plate, then choose one of the other methods that best suits your needs. PO_szLPNGenerationMethod_LPNG
Build Default UOM Structure - This value determines the unit of measure structure. A 1 says to use the transaction UOM structure. A blank says to use the default structure. This processing option only has meaning in this NER if the license plate generation method is something other than 01. PO_cBuildStructure_EV01
Processing option data structure
The interface retrieves these parameters by calling BD3N4101. They are passed back in the following data structure.
Type | Description | Parameter |
---|---|---|
String | szVersion_VERS | Input |
String | szDocumentType_DCT | Output |
Char | cDefaultFROMPrimLocation_EV01 | Output |
Char | cDefaultTOPrimLocation_EV02 | Output |
Char | cProtectCosts_EV03 | Output |
Char | cSummaryMode_EV04 | Output |
Char | cAllowHeldLots_EV05 | Output |
Char | cAllowOverQtyAvailable_EV06 | Output |
String | szJournalEntriesVersion_VL01 | Output |
String | szItemLedgerVersion_VL03 | Output |
String | szOutInteroperabilityType_TYTN | Output |
Char | cAgreementAssignProcess_EV01 | Output |
Char | cPODefaultLotStatus_Ev07 | Output |
String | PO_szLotGroup_LOTGRP | Output |
String | PO_szLPNGenerationMethod_LPNG | Output |
Char | PO_cBuildStructure_EV01 | Output |
Char | PO_cLicensePlateWindow_EV01 | Output |
Processing
The characteristics of an item determine which fields are required by the interface. Some characteristics are set at the item master level, and some are set at the item/branch level. The item/branch level always takes precedence over the item master.
Required fields
The Advanced Inventory Action Code, transaction number, “from” branch/plant, item, “to” branch/plant, and quantity are required fields. These are the minimum requirements. If you are adjusting a specific location and/or lot, these fields would need to be entered.
Lot and serial control
Lot control and serial control are determined at the branch level.
The Lot Process Type SRCE determines if a lot or serial number is required and how it is assigned. Valid values are:
-
Blank or 0 - lots are optional
-
1 - lots are assigned using the date
-
2 - lots are assigned with next number
-
3 - lots must be assigned manually
-
4 - serial number is optional
-
5 - serial number assigned using date
-
6 - serial number assigned manually
The Serial Number Required NR works in conjunction with the lot process type to determine whether a serial number is required, or if additional lot fields are required. Valid values are:
-
Blank - serial number not required
-
3 - Supplier lot required
-
4 - Supplier lot, memo lot 1 required
-
5 - Supplier lot, memo lot 1, and memo lot 2 are required
-
6 - CSMS Non-serialized item
-
N - Serial number not required
-
Y - Serial number required (if the item is serialized the quantity must be 1)
This is dependent on the lot process type flag having a value of 5, 6, or 7. Because you are transferring inventory the lot must already exist for lot controlled items. The only information needed is the combination of item/location and lot number and the quantity.
Dual unit of measure
This is determined at the item master level. When this is turned on for an item, a primary quantity and secondary quantity are required. All inventory transactions must be entered with primary and secondary quantities. The dual unit of measure process uses principals based upon catch weight. The primary characteristics of these items are that there is a variable quantity for the unit of measure conversion, not a static conversion factor.
Examples are food and roll goods. For example, if you were dealing with chickens, the weight per chicken varies, so a standard unit of measure conversion will not work because it is not consistent. The item setup could be Primary Unit of Measure Each, Secondary Unit of Measure LB. A unit of measure conversion needs to exist with a baseline conversion of LB to each. The weight in lbs of an individual chicken will vary and needs to be input for all transactions.
The Dual Unit of Measure Item DUAL controls whether the item is a dual unit of measure item, and whether tolerance checking is used. The valid values are:
-
Blank - The item does not utilize dual unit of measure functionality.
-
1 - The item utilizes the dual unit of measure functionality without tolerance checking.
-
2 - The item utilizes the dual unit of measure functionality with tolerance checking for all transactions, except for inventory issues and adjustments.
If you do not pass the secondary quantity in this transaction it will not default to the standard unit of measure conversion. It will pass a 0 into the secondary quantity.
Best practices
The minimum fields that you should be passing in are the Advanced Inventory Action Code, Transaction Number, Item Number, “from” Branch/Plant, Quantity, “from” Location, “from” lot number if required, “to” Branch/Plant, “to” location, and “to” lot number, if required. Typically the document type is retrieved from the processing options of the version being used.
Action code usage
The Inventory Transfer Muti-line interface is processed with multiple transactions.
The following action codes (cdsiActionCode_EV01) are valid for this interface.
Action code | Description |
---|---|
Blank | This will add the transaction to the FD3N4113 Work File. |
5 | This will process all the multi-line transactions from the FD3N4113 Work File that share the passed Transaction Number. |
9 | This will delete all the records from the FD3N4113 Work File that share the passed Transaction Number. |
Verifying the processing
After processing an inventory transfer, there should be an entry in the Item Ledger (Cardex, menu G41112), a journal entry in Inventory Journal Review (menu G41), and the inventory quantity should change in the Summary Availability (menu G41112).
As an example we are transferring 5 Touring Bikes from location 1.B.1 to location 1.A.1. This is all within the same branch/plant, 30. In the summary availability before the transfer is run there are currently 5 bikes on hand in location 1.B.1 and we are transferring all 5 of them to 1.A.1.
Any time you affect inventory you will get a CARDEX entry and a journal entry. In the details of the CARDEX entry that is created when a transfer is processed, you will see a batch number that can be used to look up the journal entry that is created, and a document number that can be used to review the transfer using the E1 application, Inventory Transfers.
Summary availability shows a snapshot of how inventory looks at any given moment and should also change when a transfer is processed. When using summary availability to verify an activity occurred you should have both a before look and an after look at the availability to see the difference. In the before look, there are 5 bikes in location 1.B.1 and 5 bikes in location 1.A.1. In the after look there are 0 bikes in location 1.B.1, and 10 bikes in location 1.A.1, showing that the 5 bikes have transferred successfully.
License plates
Inventory transfers will transfer a license plate if, 1) the entire amount on the license plate is transferred, and 2) the license plate consists of just one item - the one being transferred. If the transfer is not for the full amount on the license plate, or the license plate has another item on it when the transfer is performed, the item being transferred is taken off the license plate and it is then moved as loose stock. In this case, the license plate stays in the location where it is.
Advanced Inventory has a business function, ND3N6L10, that can be used to transfer entire license plates (single item or mixed items).
Input data structure
The following table describes the input data structure for DD3N4113A.
Name | Default value | Required or optional | Alias | Notes |
---|---|---|---|---|
cdsiActionCode_EV01 | Blank | x | EV01 |
Blank - This will add a record to the work file to be processed later in a multi-line transaction.
5 - This triggers the process event of the multi-line records in the work file.
9 - This will delete the set of records in the work file.
|
cActionCode_ACTION | 0 | x | EV01 | This field is not used in this NER. |
jdDateUpated_UPMJ | Current Date | x | UPMJ | Retrieved from GetAuditInfo |
mnTimeUpdated_TDAY | Current Time | x | TDAY | Retrieved from GetAuditInfo |
szUserId_USER | Current User | x | USER | If not passed in, a value will be retrieved from GetAuditInfo. The value of this field will be used for typical user related updates (user ID of who updated a database record, user ID in CARDEX, user ID for GL batches, etc.) |
szWorkStationId_JOBN | Current Workstation | x | JOBN | Retrieved from GetAuditInfo |
mnJobNumber_JOBS | o | JOBS | This field normally should be blank. EnterpriseOne will return this field. | |
szProgramId_PID | ND3N4113 | x | PID | Defaulted in program if not passed in |
szVersion_VERS | ZJDE0001 | x | VERS | If not passed in the ZJDE0001, version will be used. The processing options of this version will be used for error checking. |
cSuppressErrMsg_EV01 | o | EV01 | This field is not used in this NER. | |
cErrorCode_ERRC | Blank | x | ERRC |
This is a return value.
1 = warning
2 = error
|
szErrorMessageKey_EKEY | Blanks | x | EKEY | This value is returned and will contain the alias of the error message. |
iDebugLevel_INT01 | o | INT01 | Displays M&D Debus statements if the value is greater than zero. | |
mnDocNo_DOC | o | DOC | This field normally should be blank. EnterpriseOne will return this field. | |
szDocType_DCT | Processing Options | x,r | DCT | Required field. If the version does not have a default value, then the transaction must include the document type. |
jdTranDate_TRDJ | Today's Date | x | TRDJ | |
szExplanationTransaction | o | TREX | ||
jdGLDate_DGL | Today's Date | x | DGL | |
szBranchPlantTo_MCU | r | MCU | The branch/plant where the item is being transferred too. | |
szPrimaryItemNo_UITM | r | UITM | The item number of the stock that is being transferred. | |
szLocFrom_LOCF | o | LOCF | Can be unformatted but must have separators. If the processing option is set to default from primary, and no location is entered, the primary location will default into the transaction. | |
szLotNoFrom_LOTF | o,r | LOTF | If the item is lot controlled, and the lot number is assigned manually, this becomes a required field. | |
szLocTo_LOCN | o | LOCN | Can be unformatted but must have separators. If the processing option is set to default from primary, and no location is entered, the primary location will default into the transaction. | |
szLotNoTo_LOTN | o,r | LOTN | If the item is lot controlled, and the lot number is assigned manually, this becomes a required field. | |
szTransUOM_TRUM | o | TRUM | If no value is passed, the primary unit of measure will be used. | |
mnTransQty_TRQT | r | TRQT | Enter the quantity of the item that is being transferred. | |
mnFromUnitCost_UNCS | o | UNCS | ||
mnFromExtCost_PAID | o | PAID | ||
mnToExtCost_PAID | o | PAID | ||
mnToUnitCost_UNCS | o | UNCS | ||
szReasonCode_RCD | o | RCD | ||
mnBatchNumber_ICU | x,r | ICU | This field normally should be blank. EnterpriseOne will return this field. | |
cBatchStatus_IST | x.r | IST | This field normally should be blank. EnterpriseOne will return this field. | |
mnInvJobNumber_JOBS | x,r | JOBS | This field normally should be blank. EnterpriseOne will return this field. | |
mnPreviousLineNumber_LNID | x,r | LNID | This field normally should be blank. EnterpriseOne will return this field. | |
mnLastJournalEntryLineNo_JELN | x,r | JELN | This field normally should be blank. EnterpriseOne will return this field. | |
cToLotStatusCode_LOTS | o | LOTS | ||
szGuidUniqueID_GUID | Automatically generated by MEP | o | CFRGUID | If generate GUIDs is turned on in the MEP configuration utility, this field will contain a GUID (guaranteed unique identifier). The GUID is used to tie database changes in EnterpriseOne to the transactions that triggered those changes to occur. |
szGuidApprover1_USR1 | o,r | USR1 | An entry in this field, or the Approver 2 field, will cause a signature capture record to be written. Signature capture records are part of the GUID processing and should not be used unless a GUID is being created by MEP. The value of this field is a User ID, not an address book entry. There must be a value passed in to either this field or the approver 2 field, otherwise it is an error. | |
szGuidFullName1_FULLNAME1 | o | FULLNAME1 | This field is the full name of the GUID Approver 1. | |
szGuidApprover2_USR2 | o,r | USR2 | GUID processing supports up to two approvers. If two approvers are required, this is the user ID of the second approver. There must be a value passed in to either this field, or the approver 1 field, otherwise it is an error. | |
szGuidFullName2_FULLNAME2 | o | FULLNAME2 | This field is the full name of the GUID Approver 2. | |
mnGuidReasonCode1_REASON1 | o,r | REASON1 | If either of the approver fields contains a value, but no value is entered into one of the reason code fields, then an error will be returned. Reason codes must match the valid reason codes setup for GUID processing, otherwise it is an error. | |
szGuidCommentField_COMMENTS | o | COMMENTS | This is a free form entry field that is used to further explain the reason code entered into the previous field. | |
mnGuidReasonCode2_REASON2 | o,r | REASON2 | If either of the approver fields contains a value, but no value is entered into one of the reason code fields, then an error will be returned. Reason codes must match the valid reason codes setup for GUID processing, otherwise it is an error. | |
szGuidCommentField2_2COMMENTS | o | 2COMMENTS | This is a free form entry field that is used to further explain the reason code entered in the previous field. | |
szGuidScriptID_FMNMVERS | o | FMNMVERS | In EnterpriseOne the screen ID where the change was made is captured. MEP captures the script ID. | |
szGuidTextMessage_TEXTMES | o | TEXTMES | This is a free form entry field. | |
mnSecondaryQty_SQOR | o,r | SQOR | If the item is a DUAL unit of measure item, this is the secondary quantity. | |
szSecondaryUoM_UOM2 | o,r | UOM2 | If this item is a DUAL unit of measure item, this is the secondary unit of measure. | |
szFromLicensePlateNumber_LPNU | o | LPNU | The value in this field indicates the license plate that is being transferred. | |
szFromProductionNumber_PMPN | o | PMPN | The value in this field indicates the From production number. | |
szToProductionNumber_PMPN | o | PMPN | The value in this field indicates the To production number. | |
szBranchPlantFrom_MCUF | r | MCUF | The branch/plant where the item is before it is transferred. | |
mnTransactionNbr_TRNO | r | TRNO | The Transaction Number is used to group a set of multi-line transactions together and is used as a key field in the FD3N4113 Work File. | |
mnUniqueKeyIDInternal_UKID | o | UKID | This field normally should be blank. The value of the last UKID in the transaction set will typically be returned. |
Transaction test scenarios
Test scenarios are provided as examples of how the Inventory Transfers Multi-Line interface can be used.
These test scenarios provide valuable information that help end user admins decide which parameters they will likely need when implementing the interface or when troubleshooting implementation issues. To ensure a successful test of the interface, refer to the following table for the required input parameters for each scenario.
Field Name | First Multi-Line Transaction | Subsequent Multi-Line Transaction | Process Multi-Line Transaction | Delete all Work File records for existing Transaction Number |
---|---|---|---|---|
szPrimaryItemNo_UITM | 210 | 210 | ||
szBranchPlantFrom_MCUF | M30 | M30 | ||
szLocFrom_LOCF | 1.A.1 | 1.B.1 | ||
szLotNoFrom_LOTF | LOT1 | LOT2 | ||
szBranchPlantTo_MCU | M30 | 30 | ||
szLocTo_LOCN | 1.A.2 | 1.B.2 | ||
szLotNoTo_LOTN | LOT1 | LOT2 | ||
mnTransQty_TRQT | 2 | 4 | ||
cdsiActionCode_EV01 | 5 | 9 | ||
szUserId_USER | Elvis | Elvis | Elvis | Elvis |
szWorkStationId_JOBN | ||||
szVersion_VERS | ZJDE0001 | ZJDE0001 | ZJDE0001 | |
mnTransactionNbr_TRNO | 111.11 | 111.11 | 111.11 | 222.22 |
Common error messages
The following error messages are commonly generated by this NER.
Error message | Description |
---|---|
0002 |
Record Invalid
In the context of this NER, this error is returned when the File_IO_Status is not CO SUCCESS when fetching the FD3N4113 work file records. When processing multi-line transactions this message can also happen when an error has been detected from one of these three business functions: dcLINK Set User ID, dcLINK Utility Set Audit Info, or dcLINK Utility Write Signature Capture Record.
|
0003 |
Blanks Invalid
If the version does not have a default value, then the transaction must include the document type.
|
010U |
Invalid Item Number
The item number cannot be left blank.
|
0133 |
Negative Amount Invalid
The quantity passed in is less than zero.
|
078G |
Delete from table failed
When using dsiActionCode “9” to delete work file records, this message is returned when no records have been deleted. This could indicate that no records exist or that the delete table IO operation failed.
|
110H |
Lot/Serial Number Required
The dcLINK action code is equal to “L” or “S”, but the “from” lot number (szLotNoFrom_LOTF) is empty or blank.
|
144LPN |
Branch Plant-Error
The branch /plant does not have license plating turned on.
|
2658 |
Original Transaction not found
This indicates that the Transaction Number passed in must be a valid number greater than zero.
|
460A |
Transaction failed due to error
If an error exists, but no other specific error message exists, the interface returns this message. This usually indicates that an error occurred during processing of the multi-line transactions.
|
References
The following table describes the related D3N objects used to support this NER.
Object name | Description |
---|---|
BD3N0009 | dcLINK Utility - Turn Debug On and Off |
DD3N0009 | dcLINK Utility - Turn Debug On and Off |
BD3NSETU | dcLINK Set User ID |
DD3NSETUSR | dcLINK Set User ID |
BD3N4101 | PO Retrieval - Inventory Transfer |
DD3N4101 | PO Retrieval - Inventory Transfer |
ND3N0004 | dcLINK Interface Serial Number Lookup |
DD3N004A | dcLINK Interface Serial Number Lookup |
ND3NGUID | dcLINK Utility Write Signature Capture |
DD3NGUID | dcLINK Utility Write Signature Capture |
Assumptions
Minimal error checking is done while adding records to the FD3N4113 work file so the data sent for these multi-line transactions needs to be carefully entered and validated beforehand to prevent errors during the processing of the multi-line records.
[Body Empty]
Loading...
There was a problem loading this topic