Component Scrap interface for JD Edwards
About the Component Scrap interface
This interface is used to scrap a quantity of an already issued component.
The quantity to scrap cannot exceed the quantity issued. The dcLINK version is called ND3N1116. This interface was written in NER, and calls ‘C' business function, BD3N3105, to retrieve the processing options.
Name | Function name | Description |
---|---|---|
DD3N1116 |
dcLINK Interface Component Scrap |
|
ND3N1116 |
dcLINKInterfaceComponentScrap |
dcLINK Interface Component Scrap |
DD3N3105 |
PO Retrieval Component Scrap |
|
BD3N3105 |
PORetrieveComponentScrap |
PO Retrieval Component Scrap |
The full name of this interface is ND3N1116 Component Scrap
This interface guide applies to the following JDE versions.
-
EnterpriseOne Xe through 9.1
Corresponding EnterpriseOne application
In EnterpriseOne, the application you would run to perform a work order component scrap is P31116 and can be accessed from the menu G3111.
Processing options
The dream writer version will default to ZJDE0001 if not otherwise specified in the parameter list on the call.
Process tab
-
Status Code: A value placed in this field could result in an error being sent back to the data collection device if the work order status is great than the status shown here. szStatusCodeWo_SRST
Defaults tab
-
Reason Code: The reason code is validated against the UDC table 31/RC and a valid code must be entered (blanks are defined as a valid code). If the same reason code is always used, it can be defined in this processing option, which removes the requirement of always entering the code on each transaction. szReasonCode_REAC
-
Document Type: The document type is used to create the CARDEX entry. This field must be completed; the user has no option to override this value in the transaction.
Processing option data structure for DD3N3105
Our interface retrieves these parameters by calling BD3N3105 and is passed back in the following data structure.
Type | Description | Parameter |
---|---|---|
String |
szPOVersion_VERS |
Input |
Char |
cProcessingMode_EV01 |
Output |
String |
szStatusCodeWo_SRST |
Output |
Date |
jdDateTransaction_TRDJ |
Output |
String |
szReasonCode_REAC |
Output |
String |
szDocumentType_DCT |
Output |
String |
szOrderType_DCTO |
Output |
Processing
You can use this interface to scrap a quantity of an already issued component.
Component scrap is a pretty straight forward process. An item has been issued, and now you want to change the issue into a scrap. The biggest challenge might be scraping the “right” line. EnterpriseOne presents all the component lines in a grid and relies on the user to choose the line he/she wants to scrap, putting the burden of picking the right line clearly on the user. Advanced Inventory's interface has to choose the right line without the benefit of someone viewing it. At a minimum the user needs to pass the order number, item number, and branch/plant. This works as long as the item number appears only once on the order. But what do you do if it the item is on more than one operation sequence? An interesting design decision in EnterpriseOne is that, for issuing components, the operation sequence figures prominently in the process. However, when it comes to scraping a component, the operation sequence is nowhere to be seen. Our interface finds the first record that matches the selection criteria and uses that record.
Many times an item would appear more than once on a work order because it came from a different location or lot. So, we added location and lot as additional selection criteria. If a value is passed into either field it will be used to select the “right” record. Otherwise those fields will be ignored. But that still does not solve the problem completely. If the same item is on more than one operation sequence, and has the same location and/or lot at both operations, then we still have a problem because our interface will find the first instance and try to do all the scraping against that entry.
To solve that problem we added another selection criteria field that does not show up on the EnterpriseOne grid. This field is the component number. When an item is added to the parts list, it is assigned a unique component number. EnterpriseOne shows the component number in the grid on issues, but does not show it for component scrap. By including this number in the selection criteria, this interface will be able to find and scrap items against a specific line on the parts list.
P31116 was not written with many selection fields in the header, so all the section fields are mapped to QBE fields (mnQBEOrderNumber_DOCO, szQBEUnknownItem_UITM, etc.).
Required fields
The work order, item number, branch/plant, and quantity to scrap are all required fields. The reason code is really a required field as well, although it does not look like one, because EnterpriseOne ships with blanks as a valid reason code. If a client removed blanks, then the interface would generate an error if a reason was not provided. As discussed above, these may not provide enough information to select the correct record. Location, lot, and component number are all optional selection fields. If present, they will be used, but if missing, they will be ignored.
Verify the processing
You can verify the processing using EnterpriseOne P31116, or CARDEX.
To verify the processing, complete one of the following steps in JDE.
-
Open EnterpriseOne P31116 and verify that the transaction processed by dcLINK worked. The initial work with grid shows the items on the work order, the quantity issued, and the quantity scraped.Step Information
-
Open CARDEX. A component scrap transaction should result in an entry in CARDEX under the component item number being scrapped. In the example below, the IO document type identifies the transaction that was created as the result of a component scrap.Step Information
Input data structure
Input data structure for DD3N1116
Name | Default value | R/O | Alias | Notes |
---|---|---|---|---|
cdcLINKActionCode_EV01 |
0 |
X |
EV01 |
Always defaults to a 0. No different action takes place based on this code. |
cActionCode_ACTION |
0 |
X |
ACTION |
|
jdDateUpdated_UPMJ |
Current Date |
X |
UPMJ |
Retrieved from GetAuditInfo. |
mnTimeOfDay_TDAY |
Current Time |
X |
TDAY |
Retrieved from GetAuditInfo. |
szUserId_USER |
Current User |
X |
USER |
Retrieved from GetAuditInfo. |
szWorkStationId_JOBN |
Current Workstation |
X |
JOBN |
Retrieved from GetAuditInfo. |
mnJobNumber_JOBS |
O |
JOBS |
||
szProgramId_PID |
ND3N1116 |
X |
PID |
Defaulted in program if not passed in. |
szVersion_VERS |
ZJDE0001 |
X |
VERS |
Defaulted in program if not passed in. |
cSuppressErrMsg_EV01 |
O |
EV01 |
||
cErrorCode_ERRC |
Blanks |
X |
ERRC |
Defaulted in program. |
szErrorMessageKey_EKEY |
Blanks |
X |
EKEY |
Defaulted in program. |
iDebugLevel_INT01 |
O |
INT01 |
Displays M&D Debug statements if the value is greater than 0. |
|
mnQBEOrderNumber_DOCO |
R |
DOCO |
This is a required field. If this field is left blank error 4635 will be generated. This field, along with the item number (szQBEUnknownItem_UITM), is used to find the correct component on the work order to scrap. |
|
szQBEUnknownItem_UITM |
R |
UITM |
This is a required field. If this field is left blank error 0503 will be generated. This field, along with the work order (szQBEOrderNumber_DOCO), is used to find the correct component on the work order to scrap. |
|
mnQBEQtyIssued_TRQT |
O |
TRQT |
This QBE field is not used by the interface. It was added as a convenience for customizing this interface should a client need to select component records by quantity issued. The selection logic would have to be added. |
|
mnQBEQtyScrapped_SOCN |
O |
SOCN |
This QBE field is not used by the interface. It was added as a convenience for customizing this interface should a client need to select component records by quantity scrapped. The selection logic would have to be added. |
|
szQBEUnitOfMeasure_UM |
O |
UM |
This QBE field is not used by the interface. It was added as a convenience for customizing this interface should a client need to select component records by unit of measure. The selection logic would have to be added. |
|
mnQBEQtyOrdered_UORG |
O |
UORG |
This QBE field is not used by the interface. It was added as a convenience for customizing this interface should a client need to select component records by quantity ordered. The selection logic would have to be added. |
|
szQBELocation_LOCN |
O |
LOCN |
If a value is entered into this field it will be used by the interface to locate the correct component to scrap. The interface loops through the F3111 file, reading all components that match the order number (szQBEOrderNumber_DOCO) and item number (szQBEUnknownItem_UITM) entered. If this field is not null, it will be compared to each retrieve record looking for a match. If a component number is used, and a location is on the line, the location must be passed in. |
|
szQBELot_LOTN |
O |
LOTN |
If a value is entered into this field it will be used by the interface to locate the correct component to scrap. The interface loops through the F3111 file reading all components that match the order number (szQBEOrderNumber_DOCO) and item number (szQBEUnknownItem_UITM) entered. If this field is not null, it will be compared to each retrieve record looking for a match. |
|
szQBEBranchComponent_CMCU |
R |
CMCU |
This is a required field. If this field is left blank error 0964 (Error: Branch/Plant Invalid) is generated. This is the Branch/Plant Name. |
|
jdQBEDateRequested_DRQJ |
O |
DRQJ |
This QBE field is not used by the interface. It was added as a convenience for customizing this interface should a client need to select component records by date requested. The selection logic would have to be added. |
|
mnQtyToScrap_SOCN |
R |
SOCN |
This is a required field. If this field is left blank error 3968 is generated. This is the quantity that is being scrapped. The quantity must not be equal to zero. |
|
szUnitOfMeasureAsInput_UOM |
X |
UOM |
This optional field will be defaulted from reading the F3111 file. It can be overridden by supplying a value when the interface is called. |
|
szReasonCode_REAC |
Processing Options |
R |
REAC |
If left blank this field will default to the value stored in the processing options (po_szReasonCde_REAC). Any value keyed into this field will be edited against the UDC table 31|RC. |
jdTransactionDate_TRDJ |
Processing Options |
X |
TRDJ |
This field is optional. If left blank it will default to the value from the processing options. If that value is blank, then today's date will be defaulted. This only needs to be overridden if using the current date is unacceptable. |
szDescriptionLine_DSC1 |
X |
DSC1 |
This field is the description that is associated with the reason code. If this field is left blank that description will default from the UDC table 31|RC. |
|
szGuidUniqueID_GUID |
Automatically generated by dcLINK |
O |
CFRGUID |
If generate GUIDs is turned on in the dcLINK configuration utility this field will contain a GUID (guaranteed unique identifier). The GUID is used to tie database changes in PeopleSoft 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 dcLINK. 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 PeopleSoft the screen ID where the change was made is captured. dcLINK 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. |
|
szExplanation_TREX |
TREX |
|||
mnQBEComponentNumber_CP |
CP |
X = Required but will default in if not passed
O = Optional
Transaction test scenarios
The following test scenarios demonstrate a variety of ways in which this interface could be used, and the fields that would be passed for each scenario.
The data structure fields are in the left column, and the corresponding values for each scenario are listed by column.
Field name | Simple qty scrapped | Scrap using a location for selection | Scrap using a component number | Scrap using a component number and location |
---|---|---|---|---|
cdcLINKActionCode_EV01 |
0 |
0 |
0 |
|
cActionCode_ACTION |
||||
jdDateUpdated_UPMJ |
||||
mnTimeOfDay_TDAY |
||||
szUserId_USER |
||||
szWorkStationId_JOBN |
||||
mnJobNumber_JOBS |
||||
szProgramId_PID |
||||
szVersion_VERS |
||||
cSuppressErrMsg_EV01 |
||||
cErrorCode_ERRC |
||||
szErrorMessageKey_EKEY |
||||
iDebugLevel_INT01 |
||||
mnQBEOrderNumber_DOCO |
540799 |
540799 |
540799 |
540799 |
szQBEUnknownItem_UITM |
2001 |
2021 |
2014 |
2007 |
mnQBEQtyIssued_TRQT |
||||
mnQBEQtyScrapped_SOCN |
||||
szQBEUnitOfMeasure_UM |
||||
mnQBEQtyOrdered_UORG |
||||
szQBELocation_LOCN |
1.A.1 |
1.A.1 |
||
szQBELot_LOTN |
||||
szQBEBranchComponent_CMCU |
M30 |
M30 |
M30 |
M30 |
jdQBEDateRequested_DRQJ |
||||
mnQtyToScrap_SOCN |
2 |
1 |
1 |
1 |
szUnitOfMeasureAsInput_UOM |
||||
szReasonCode_REAC |
10 |
10 |
||
jdTransactionDate_TRDJ |
||||
szDescriptionLine_DSC1 |
||||
szGuidUniqueID_GUID |
||||
szGuidApprover1_USR1 |
||||
szGuidFullName1_FULLNAME1 |
||||
szGuidApprover2_USR2 |
||||
szGuidFullName2_FULLNAME2 |
||||
mnGuidReasonCode1_REASON1 |
||||
szGuidCommentField_COMMENTS |
||||
mnGuidReasonCode2_REASON2 |
||||
szGuidCommentField2_2COMMENTS |
||||
szGuidScriptID_FMNMVERS |
||||
szGuidTextMessage_TEXTMES |
||||
mnSecondaryQty_SQOR |
||||
szSecondaryUoM_UOM2 |
||||
szExplanation_TREX |
Operator dropped a case |
|||
mnQBEComponentNumber_CP |
9.00 |
28.00 |
Common error messages
The following are common error messages that can be generated by this BF, and what those error messages mean.
Error message | Meaning |
---|---|
0002 |
Record Invalid will be returned if either of these conditions are met.
|
0464 |
Stocking Type Invalid. The stocking type for the item being processed is defined in the item branch file (F4102) as a bulk pick item. |
0503 |
Item Number Invalid. The required field, item number (szQBEUnknownItem_UITM), was not passed into this NER, or the item number failed validation. |
0964 |
Branch/Plant Invalid. The required field, branch/plant (szQBEBranchComponent_CMCU), was not passed into this NER. |
3138 |
Invalid Location. The format location business function was unable to successfully format the location (szQBELocation_LOCN) that was passed into this NER. |
3968 |
Invalid Quantity. The required field, scrap quantity (mnQtyToScrap_SOCN), was not passed into this NER or is equal to zero. |
4081 |
Scrap Quantity Exceeds Issued Quantity. The total scrap quantity is greater than the total issued quantity for this item. |
4089 |
W.O. Status Invalid for Component Scrap. The work order status that was retrieved from the work order header file (F4801) is greater than the maximum allowed status defined in the processing options for allowing component scrap transactions. |
4098 |
Qty to reverse exceeds scrapped qty. The total of the quantity already scrapped, plus the amount to be scrapped on this transaction, is less than zero. |
4635 |
Order Number required. The required field, order number (szQBEOrderNumber_DOCO), was not passed into this NER. |
4715 |
LSN quantity restriction. The lot processing type defined for this item in the item branch file (F4102) says this item is a serialized item, yet the scrap quantity is not equal to 1 or -1. |
Loading...
There was a problem loading this topic