Bulk Data Processing
A number of SAP transactions support bulk data input such as Journals, GB11, and MEB1, for example, to create transactions and transaction items from bulk input. This bulk input can be either a merge record (as string or a fully qualified document containing the merge record) and/or an RTX. These process definitions have the following Bulk tab:
Field | Description | Example | ||||
---|---|---|---|---|---|---|
Bulk Input Data (MergeRecord) | A merge record containing multiple fields to be processed | 40;1000,5; | 50;90; | 50;10,5; | 40;425;X | 50;970; |
Bulk Input Data (RTX) | Reference to an RTX file | JobFile:1234:InputData.rtx |
note
Although you can specify inline RTX data, this should be discouraged as it will consume more memory and increase the size of the database tables.
Merge Record Syntax
The default merge record syntax is as follows:
row-separator := |<p />
field-separator := ;
field := any data
[...]*:= zero or more of whatever is enclosed in []
[<field>[<field-separator><field>]*<row-searator>]*
Bulk Input Data (RTX) Parameter Syntax
Table parameters such as Bulk Input Data (RTX) accept the following syntaxes:
Syntax | Decription | Example |
---|---|---|
Inline:<xml> | The keyword Inline: followed by RTX data. | Inline:<?xml version="1.0" encoding="UTF-8"?>\n <table xmlns="http://schema.redwood.com/report/rtx.xsd"> <metadata> <columns> <column> <name>Posting Key</name> <string></string> </column> <column> <name>Amount</name> <string></string> </column> <column> <name>New Transaction</name> <string></string> </column> </columns> </metadata> <data> <r><k></k><v>40</v><v>100,5</v><v></v></r> <r><k></k><v>50</v><v>900</v><v></v></r> <r><k></k><v>50</v><v>10,5</v><v></v></r> <r><k></k><v>40</v><v>425</v><v>X</v></r> <r><k></k><v>50</v><v>970</v><v></v></r> </data> </table> |
JobFile:<Process_id>:<file_name> | The JobFile: keyword followed by the process ID, a colon: , and the filename. | JobFile:1234:stdout.rtx |
RelativeFile:<step_name>, Job <>Process_number_in_step>:<file_name> | The RelativeFile: keyword followed by a relative process expression, a colon: , and the filename. | RelativeFile:Initialization, Job 3:stdout.rtx |
Table:<partition>.<table_name> | The Table: keyword followed by the Redwood Finance Automation table partition, a period (``.), and table name. | Table:GLOBAL.MySpecialTable |
FCA_SAP_Tran_Journal_Post
Specific processes can perform bulk transactions, such as FCA_SAP_Tran_Journal_Post.
The Bulk tab works just like other process definitions.
On the Header tab, you must specify Document Type, Company, Posting Date, and Currency, other parameters are optional. Start new Transaction can be set to {New Transaction}
, this will read the marker in the merge record/table (last field).
On the Item - 1, Item - 2, and Item - 3 tabs, you specify {Posting Key}
in the Posting Key parameter, it will be resolved as the posting key in the merge record/table (first field), the Amount will be the second field.
Following the example above, the following merge record is equivalent with the RTX below it:
40;1000,5;|50;900;|50;10,5;|40;425;X|50;970;
The following RTX was generated from process with id 1234
, equivalent to the above merge record:
<?xml version="1.0" encoding="UTF-8"?>
<table xmlns="http://schema.redwood.com/report/rtx.xsd">
<metadata>
<columns>
<column>
<name>Posting Key</name>
<string></string>
</column>
<column>
<name>Amount</name>
<string></string>
</column>
<column>
<name>New Transaction</name>
<string></string>
</column>
</columns>
</metadata>
<data>
<r><k></k><v>40</v><v>100,5</v><v></v></r>
<r><k></k><v>50</v><v>900</v><v></v></r>
<r><k></k><v>50</v><v>10,5</v><v></v></r>
<r><k></k><v>40</v><v>425</v><v>X</v></r>
<r><k></k><v>50</v><v>970</v><v></v></r>
</data>
</table>
To specify the above RTX as parameter value inline, you would set the parameter to the following:
Inline:<?xml version="1.0" encoding="UTF-8"?><table xmlns="http://schema.redwood.com/report/rtx.xsd"><table xmlns="http:/[...]
This is much longer than a merge record. If you have to specify data as parameter value without specifying an process file, prefer a merge record.
Note that JobFile:1234:InputData.rtx
is shorter than a usual merge record; even in a process definition, where you would use ='JobFile:' + JobChainParameters.getJobId('<step_name>, job <process_number_in_step>') + ':<output_file>.rtx'
such as, for example, ='JobFile:' + JobChainParameters.getJobId('Step 3, job 1') + ':journal_postings.rtx'
.
Merge Record Example Parameter Values for FCA_SAP_Tran_Journal_Post
You want to use the above merge record to specify a number journal postings.
Tab | Field Description | Field Name | Value |
---|---|---|---|
Bulk | Bulk Input Data (MergeRecord) | IN_DATA | |
Header | Start new Transaction | IN_DATA_NEW_HDR | {3} |
Header | Document Type | BLART | DZ |
Header | Posting Date | BUDAT | 20190329 |
Header | Currency | WAERS | EUR |
Item - 1 | Posting Key | NEWBS_1 | {1} |
Item - 1 | Amount | WRBTR_1 | {2} |
RTX Example Parameter Values for FCA_SAP_Tran_Journal_Post
You want to use the above RTX file to specify a number journal postings.
Tab | Field Description | Field Name | Value |
---|---|---|---|
Bulk | Bulk Input Data (RTX) | IN_DATA_RTX | |
Header | Start new Transaction | IN_DATA_NEW_HDR | {New Transaction} |
Header | Document Type | BLART | DZ |
Header | Posting Date | BUDAT | 20190329 |
Header | Currency | WAERS | EUR |
Item - 1 | Posting Key | NEWBS_1 | |
Item - 1 | Amount | WRBTR_1 | {Amount} |
See Also
Process Definitions And Subprocesses
financeTopic