This application uses the following dynamically created worktables for processing:
Z_AOPSCST_ERR
Z_AOPSCST_HDR
Z_AOPSCST_INPUT
Z_AOPSCST_LN
In order to assign the Status Update ID, the process first looks for the ID in the input file. If a Status Update ID exists on the Update Header input file, the application uses it in the update transaction. If the Status Update ID does not exist on the input file, the process follows the auto-assign logic. If the transaction ID is auto-assigned (per the settings in the Warehouses screen in Costpoint Inventory), the last PO receipt transaction is incremented by one digit from the WHSE_LAST_TRANS table for the corresponding warehouse. If the warehouse is not set up with a valid last transaction ID for PO receipts, the application generates an error. If you are not licensed for Costpoint Inventory, the process assigns a last receipt ID and update it by one digit.
The Progress Payment Request is a number referencing the request for payment made by the subcontractor for work done against the subcontract PO, and can be entered via the input file. Use the value entered in the input file, if available. Otherwise, the system automatically assigns a default progress payment request number for each subcontract PO, starting with "1" and incrementing by "1" for each subsequent progress payment. The default for subsequent progress payment requests is the maximum number plus "1." If the highest number permissible (999) has already been used, the system cannot increment further, and all subsequent progress payments must come from the input file. If it is not in the input file, the system displays an error.
All amount fields in the input file are assumed to be in the PO transactional currency (which may or may not be the same as the functional currency). During processing, the system calculates the corresponding value in terms of the functional currency using exchange rate information from the associated Purchase Order (e.g., the Transaction Currency, Rate Group, and Rate Date), which defaults into the Status Update header (RECPT_HDR) from the Purchase Order (PO_HDR). Data is stored in both currencies. Subsequent calculations are performed separately for each currency.
All status update completion amounts and percentages entered via the input file are cumulative for the PO line (from inception to date). Such values exist for the individual status update transaction and also the total value for the PO line. For example, if the first status update transaction has a Completed Work Amt of $100, and the second status update transaction for the same PO line has a Completed Work Amt of $130, the total Completed Work Amt for that PO line is $130 (not $230). These values are stored in the PO Line (PO_LN) table:
Requested Work Amt (TRN_RQSTD_AMT, RQSTD_AMT)
Completed Work Amt (TRN_COMPLT_AMT, COMPLT_AMT)
Completed Work Retention Amt (TRN_COMPLT_RET_AMT, COMPLT_RET_AMT)
Stored Materials Amt (TRN_STORED_AMT, STORED_AMT)
Stored Materials Retention Amt (TRN_STORED_RET_AMT, STORED_RET_AMT).
Incremental amounts are system-calculated, and indicate the changes due to individual updates (i.e., the difference between the values from the new update and the previous update). For example, in the scenario mentioned earlier, the Incremental Completed Work Amt would be $100 for the first status update, and $30 for the second update. These values are stored in the Receipt Line (RECPT_LN) table:
Incremental Requested Work Amt (TRN_INC_RQSTD_AMT, INC_RQSTD_AMT)
Incremental Completed Work Amt (TRN_INC_COMPLT_AMT, INC_COMPLT_AMT)
Incremental Completed Work Retention Amt (TRN_INC_CP_RET_AMT, INC_CP_RET_AMT)
Incremental Stored Materials Amt (TRN_INC_STORED_AMT, INC_STORED_AMT)
Incremental Stored Materials Retention Amt (TRN_INC_ST_RET_AMT, INC_ST_RET_AMT).
You can perform subcontract PO completion status updates only for POs with a status of "O" (Open) or "S" (System closed). The system displays a warning message if the input file subcontract PO has a header status of "S." If the subcontract PO has a header status of "C" (Closed), "V" (Void), or "P" (Pending), the system generates an error message.
You can apply status updates only to PO lines with a status of "O" (Open) or "S" (System closed). The program generates an error if a subcontract PO line has a status of "P" (Pending), "V" (Void), or "C" (Closed).
"Add" Status updates: You can insert new updates if no previous status update records exist for the subcontract PO, or if a previous status update exists but vouchers have been created against it. If the subcontract PO has an existing status update record that has not yet been vouchered, you cannot perform new status updates against it, and the system generates an error message if you try. This condition is indicated by the Receipt Header Voucher Key (RECPT_HDR.VCHR_KEY) for the corresponding status update, which is populated with the value from Voucher Header (VCHR_HDR) table that was generated in the Costpoint Create Subcontract PO Voucher application. If no vouchers have been created, the value of this field is null, and new status updates are allowed for that PO.
"Change" Status updates: You can update previously entered status update transactions depending upon whether or not a PO voucher has been generated against them. If the Receipt Header Voucher Key (RECPT_HDR.VCHR_KEY) is null (i.e., no PO voucher has been generated against the transaction), you can make changes, and the system generates a warning. Otherwise, an error is generated and no changes are allowed.
"Delete" Status Updates: You cannot delete existing status update transactions, regardless of whether or not any PO vouchers have been generated against them.
When checking against existing Receipt Header rows for previously saved status updates for any subcontract PO, the application looks for the combination of Purchase Order ID (PO_ID), Receipt ID (RECPT_ID), and/or Progress Payment Request Number (DRAW_RQST_NO). If the input file has a PO/Status Update ID, or a PO/Progress Payment Number, or a PO/Status Update ID/Progress Payment Request Number combination, the program looks at the corresponding row in the Receipt Header for a matching PO ID and Receipt ID and/or Progress Payment Request Number. If there is a match, the new transaction is an "update," subject to conditions explained earlier. If there is no match, the new transaction is an "insert," subject to conditions explained earlier.
If the subcontract PO line order amount is zero, the Completed Work Amt or Completed Work Retention Amt cannot be greater than zero.
The Completed Work Retention Amt and Stored Materials Retention Amt cannot be greater than the Completed Work Amt and Stored Materials Amt, respectively, for the PO line.
The sum of the Completed Work Amt and Stored Materials Amt cannot exceed the PO line amount.
If the Percent Complete is in the input file and the Completed Work Amt is not, the system calculates the value of the Completed Work Amt using the Percent Complete provided in the input file. If the input file contains both the Percent Complete and Completed Work Amt, the program ignores the Percent Complete column in the input file and calculates the Percent Complete using the Completed Work Amt to keep the two columns synchronized. If neither is in the input file, the program does not change these columns.
If the Completed Work Retention Pct is in the input file and the Completed Work Retention Amt is not, the system calculates the value of Completed Work Retention Amt using the Completed Work Retention Pct provided in the input file. If the input file contains both the Completed Work Retention Pct and the Completed Work Retention Amt, the program ignores the Completed Work Retention Pct column in the input file and calculates the Completed Work Retention Pct using the Completed Work Retention Amt in order to keep the two columns synchronized. If neither is in the input file, the system calculates the Completed Work Retention Amt using the Completed Work Amt (it uses the updated value, if available; otherwise, it uses the existing value) and existing Completed Work Retention Pct for the PO line.
If the Stored Materials Retention Pct is in the input file and the Stored Materials Retention Amt is not, the system calculates the value of Stored Materials Retention Amt using the Stored Materials Retention Pct provided in the input file. If the input file contains both the Stored Materials Retention Pct and Stored Materials Retention Amt, the program ignores the Stored Materials Retention Pct column in the input file and calculates the Stored Materials Retention Pct using the Stored Materials Retention Amt to keep the two columns synchronized. If neither is in the input file, the system calculates the Stored Materials Retention Amt using the Stored Materials Amt (it uses the updated value, if available; otherwise, it uses the existing value) and existing Stored Materials Retention Pct for the PO line.
In order to enable status updates for subcontract PO lines with negative extended amounts (entered as correction lines, for example), there are additional process validations. For such negative PO lines, the values for columns are as follows:
The Requested Work Amt (PO_LN.TRN_RQSTD_AMT, RQSTD_AMT) is equal to zero.
The Percent Complete (PO_LN.COMPLT_PCT) is synchronized with the Completed Work Amt, if that field is modified.
You can update the Completed Work Amt (PO_LN.TRN_COMPLT_AMT, COMPLT_AMT) with negative amounts to withhold partial or total payable amounts resulting from the negative order line. The value cannot be less than the PO line extended amount (negative).
The Stored Materials Amt (PO_LN. TRN_STORED_AMT, STORED_AMT) is equal to zero.
The Completed Work Retention Pct (PO_LN. COMPLT_RET_PCT) is equal to zero.
The Completed Work Retention Amt (PO_LN.TRN_COMPLT_RET_AMT, COMPLT_RET_AMT) is equal to zero.
The Stored Materials Retention Pct (PO_LN.STORED_RET_PCT) is equal to zero.
The Stored Materials Retention Amt (PO_LN.TRN_STORED_RET_AMT, STORED_RET_AMT) is equal to zero.
If the status update transaction line modifies the PO line so that the Stored Materials Amount is zero and the Completed Work Amount minus the Completed Work Retention Amt equals the Subcontract Order Amount, the process changes the status of the PO line to "S" (System closed). If such change results in all lines of the PO having a status of "S," or "C," or "V," it changes the status of the PO header to "S" (System Closed).
If you modify a status update transaction line and either of the above conditions is no longer true, the process changes the status of the PO line to "O" (Open) (warning message generated), if it was previously "S" (System closed). If the PO header was previously "S" (System closed), it changes to "O" (Open). You cannot modify PO lines with a status of "C" (Closed).
In the field in the Input File group box, enter the path and name of a file, or use the Browse pushbutton. The Input File is a fixed-length (.DAT) or delimited (.CSV) ASCII file that is named by the user with the appropriate extension. This application supports two input file record formats:
The Subcontract PO Status Update Header record format contains the information necessary to populate the Update Header (RECPT_HDR).
The Subcontract PO Status Update Line record format contains the information necessary to populate the Update Lines (RECPT_LN).
The program deletes the input file after processing.
Each Update Header input file record must have at least one Update Line input file record. Similarly, an Update Line input file record must have an associated Update Header input file record. Update Line records do not need to physically follow their corresponding Update Header input file record. A single header row is sufficient for multiple PO line rows associated with the same PO. The preprocessor uses the Status Update ID, PO, and Warehouse to determine which line records belong to which header record. Every row must end with a carriage return and a line feed.
If you are using a fixed-length Input file, you must fill every position in the file with the appropriate number of either characters or spaces for a given column before entering data in the next column. It is not necessary to zero fill numbers; you can use spaces to maintain the proper format. Numeric fields should be right justified; character fields should be left justified. Once you have entered the last character of meaningful data for the input file, you do not have to fill the remaining column lines with spaces.
For example, if the Subcontract PO Status Update Header Record Format's maximum line length (i.e., the entire input file) is a total of 51 characters and the last character of meaningful data is in position 38, you do not need to add the remaining 13 spaces. However, let's say that the PO ID (beginning at position 33 on the input file) is only seven characters long. You must include the PO ID plus three additional spaces before entering the Progress Payment Request in position number 43.
The Error File, which is a suspense file that contains records that were not processed from the Input File due to errors, has the same name as the Input File but with an .ERR extension. The error file should be in the same directory path as the input file. The error file is named "SCMMDDYY.ERR", where "MMDDYY" is the date on which the process was run. If that file already exists, the new errors are appended to the file.
If you select the Produce NO ASCII Error File checkbox before processing, the program does not create an error file.
The layout of the Error File is the same as the layout of the Input File. After you select the Process or Process/Print button on the toolbar, the application generates an error report if there is at least one set of header/line records with an error or warning message. If you select the Process Valid Records radio button before executing the upload process, the program processes input file sets without errors and does not process sets with errors. If you select the Process No Records radio button, the program processes no rows if there is any error. In any case, records with warnings (not errors) are processed. Even if the process is run without a trial run (and you select the Process Valid Records radio button), all input file header/line sets without errors are processed.
Column Name |
Costpoint Table/Column |
Number of Characters |
Start/End Position |
Character Type |
Format |
Required |
Record Type |
N/A |
2 |
1 - 2 |
Character |
(H) |
Y |
Status Update ID |
RECPT_HDR.RECPT_ID |
10 |
3 - 12 |
Character |
|
N |
Warehouse |
RECPT_HDR.WHSE_ID |
8 |
13 - 20 |
Character |
|
N |
Status Update Date |
RECPT_HDR.RECPT_DT |
10 |
21 - 30 |
Date |
MM-DD-YYYY |
N |
Employee |
RECPT_HDR.MATL_HANDLER_EMPL_ID |
12 |
31 - 42 |
Character |
|
N |
PO ID |
RECPT_HDR.PO_ID |
10 |
43 - 52 |
Character |
|
Y |
Progress Payment |
RECPT_HDR.DRAW_RQST_NO |
3 |
53 - 55 |
Number |
999 |
N |
Prime Contract Period |
RECPT_HDR.PRIME_CONTRACT_PD |
6 |
56 - 61 |
Character |
|
N |
Column Name |
Costpoint Table/Column |
Number of Characters |
Start/End Position |
Character Type |
Format |
Required |
Record Type |
N/A |
2 |
1 - 2 |
Character |
(L) |
Y |
Status Update ID |
RECPT_HDR.RECPT_ID (used to assign RECPT_KEY for RECPT_LN) |
10 |
3 - 12 |
Character |
|
N |
Warehouse |
RECPT_LN.WHSE_ID |
8 |
13 - 20 |
Character |
|
N |
PO ID |
RECPT_LN.PO_ID (used to link to subcontract PO and PO Line) |
10 |
21 - 30 |
Character |
|
Y |
PO Line No |
PO_LN.PO_LN_NO (used to get PO_LN_KEY for RECPT_LN) |
5 |
31 - 35 |
Number |
|
Y |
Total Requested Work Amt |
PO_LN.RQSTD_AMT and PO_LN.TRN_RQSTD_AMT |
14 |
36 - 49 |
Number/ Decimal (14,2) |
999999999999.99 |
Y |
Total Percent Complete |
PO_LN.COMPLT_PCT |
6 |
50 - 55 |
Number/ Decimal (6,4) |
999 |
N |
Total Completed Work Amt |
PO_LN.COMPLT_AMT and PO_LN.TRN_COMPLT_AMT |
14 |
56 - 69 |
Number/ Decimal (14,2) |
999999999999.99 |
N |
Total Completed Work Retention Pct |
PO_LN.COMPLT_RET_PCT |
6 |
70 - 75 |
Number |
|
N |
Total Completed Work Retention Amt |
PO_LN.COMPLT_RET_AMT and PO_LN.TRN_COMPLT_RET_AMT |
14 |
76 - 89 |
Number/ Decimal (14,2) |
999999999999.99 |
N |
Total Stored Materials Amt |
PO_LN.STORED_AMT and PO_LN.TRN_STORED_AMT |
14 |
90 - 103 |
Number/ Decimal (14,2) |
999999999999.99 |
N |
Total Stored Materials Retention Pct |
PO_LN.STORED_RET_PCT |
6 |
104 - 109 |
Number |
|
N |
Total Stored Materials Retention Amt |
PO_LN.STORED_RET_AMT and PO_LN.TRN_STORED_RET_AMT |
14 |
110 - 123 |
Number/ Decimal (14,2) |
999999999999.99 |
N |