TPMTDR: TPM Deduction Review Post
The TPM Deduction Review Post business object posts and updates TPM deduction transactions.
Properties
| Syspro Module | Trade Promotions |
| Class | Transaction |
| Methods | Post |
| Functional Area | Sales Orders Primary Posting |
| Initial version released | Syspro 8 2026 R1 |
Input XML
The .XML and .XSD input files indicate the parameters schema and an instance of an XML document for this business object.
Copy
<?xml version="1.0" encoding="Windows-1252"?>
<!-- Copyright 1994-2025 SYSPRO Ltd. -->
<!--
This is an example XML instance to demonstrate
use of the TPM Deductions Review Posting Business Object
-->
<TPMDeductionsReviewPost xmlns:xsd="http://www.w3.org/2001/XMLSchema-instance" xsd:noNamespaceSchemaLocation="TPMTDR.XSD">
<Parameters>
<ValidateOnly>N</ValidateOnly>
<IgnoreWarnings>Y</IgnoreWarnings>
<ApplyIfEntireDocumentValid>Y</ApplyIfEntireDocumentValid>
<PostingPeriod>C</PostingPeriod>
<IncludeDimensionAnalysis>N</IncludeDimensionAnalysis>
</Parameters>
</TPMDeductionsReviewPost>
Copy
<?xml version="1.0" encoding="Windows-1252"?>
<!-- Copyright 1994-2025 SYSPRO Ltd. -->
<!--
Generated Local Xml Schema from : TPMTDR.xml
-->
<xsd:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="TPMDeductionsReviewPost">
<xsd:annotation>
<xsd:documentation>This is the root element</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Parameters">
<xsd:annotation>
<xsd:documentation>This contains parameters</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:element name="ValidateOnly" minOccurs="0">
<xsd:annotation>
<xsd:documentation>Specifies whether to only validate the contents of the document. (N - validate and apply function, Y - only validate the document).</xsd:documentation>
</xsd:annotation>
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:whiteSpace value="preserve" />
<xsd:enumeration value="Y" />
<xsd:enumeration value="N" />
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="IgnoreWarnings" minOccurs="0">
<xsd:annotation>
<xsd:documentation>Specifies if warnings are to be ignored (Y - if the warnings are to be ignored, N - warnings will be returned as errors in the XML returned, W - warnings will be returned as warnings in the XML returned).</xsd:documentation>
</xsd:annotation>
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:whiteSpace value="preserve" />
<xsd:enumeration value="Y" />
<xsd:enumeration value="N" />
<xsd:enumeration value="W" />
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="ApplyIfEntireDocumentValid" minOccurs="0">
<xsd:annotation>
<xsd:documentation>Specifies whether the entire document must be validated first before applying the function (N - apply function for each valid item, Y - all items must be valid before function is applied).</xsd:documentation>
</xsd:annotation>
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:whiteSpace value="preserve" />
<xsd:enumeration value="Y" />
<xsd:enumeration value="N" />
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="PostingPeriod" minOccurs="0">
<xsd:annotation>
<xsd:documentation>Period to which transactions must be posted. Valid values are 'C' for current period, 'P' for previous period and 'B' for before previous period (i.e. prior period 2).</xsd:documentation>
</xsd:annotation>
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:whiteSpace value="preserve" />
<xsd:enumeration value="C" />
<xsd:enumeration value="P" />
<xsd:enumeration value="B" />
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="IncludeDimensionAnalysis" minOccurs="0">
<xsd:annotation>
<xsd:documentation>This option determines whether or not to use GL dimension analysis. If set to 'Y' then GL dimension analysis will be used. The default is 'N'.</xsd:documentation>
</xsd:annotation>
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:whiteSpace value="preserve" />
<xsd:enumeration value="Y" />
<xsd:enumeration value="N" />
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
The DOC.XML and DOC.XSD files indicate the schema and an instance of an XML document for this business object.
Copy
<?xml version="1.0" encoding="Windows-1252"?>
<!-- Copyright 1994-2025 SYSPRO Ltd. -->
<!--
This is an example XML instance to demonstrate
use of the TPM Deduction Review Posting Business Object
-->
<TPMDeductionsReviewPost xmlns:xsd="http://www.w3.org/2001/XMLSchema-instance" xsd:noNamespaceSchemaLocation="TPMTDRDOC.XSD">
<DeductionItem>
<Customer>000000000000001</Customer>
<DeductionCustomer>000000000000001</DeductionCustomer>
<TrnDate>2008-04-09</TrnDate>
<TrnTime>22:21:29.070</TrnTime>
<Currency>$</Currency>
<Function>R</Function>
<Resolve>
<Type>P</Type>
<DeductionCode>LOYALTY</DeductionCode>
<Amount>50</Amount>
<ResolutionCode>NORM</ResolutionCode>
<PromotionCode>NINO</PromotionCode>
<AccrualType>REB</AccrualType>
<Customer>0000000002</Customer>
</Resolve>
<Reclassify>
<Customer>000000000000011</Customer>
<DeductionCode>ADVERT</DeductionCode>
<Amount>50</Amount>
<Reference>Deduction on Pay 1 - Reclassify 1</Reference>
<FollowUpDate>2025-12-01</FollowUpDate>
<CopyNotes>Y</CopyNotes>
</Reclassify>
<Notes>
<Note>
Update notes for an item that already had 5 lines of notes, with 2 lines
as well as the FollowUpDate. Test to just wrap around saving notes within a
single Note Node.
</Note>
<FollowUpDate>2025-12-31</FollowUpDate>
</Notes>
<AutoWriteOff>
<DeductionsLessThan>250</DeductionsLessThan>
<ResolutionCode>NORM</ResolutionCode>
</AutoWriteOff>
<ReinstateAr>
<Amount>111</Amount>
<Date>2025-11-12</Date>
<Reference>Debit for Deduction ADVERT</Reference>
<ProductClass>ANN</ProductClass>
<InvoiceTerms>1</InvoiceTerms>
<GeographicArea>N</GeographicArea>
<Salesperson>100</Salesperson>
<ResolutionCode>NORM</ResolutionCode>
</ReinstateAr>
</DeductionItem>
</TPMDeductionsReviewPost>
Copy
<?xml version="1.0" encoding="Windows-1252"?>
<!-- Copyright 1994-2025 SYSPRO Ltd. -->
<!--
Schema for the TPM Deduction Review Posting Business Object
-->
<xsd:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="TPMDeductionsReviewPost">
<xsd:annotation>
<xsd:documentation>This is the root element.</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:element name="DeductionItem">
<xsd:annotation>
<xsd:documentation>This element contains the information to maintain a deduction i.e. this element will indicate the start and end of a deduction.</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Customer" type="xsd:string" minOccurs="0">
<xsd:annotation>
<xsd:documentation>This is the Customer part of the key to the Deduction Master table for the item you wish to transact on.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="DeductionCustomer" type="xsd:string" minOccurs="0">
<xsd:annotation>
<xsd:documentation>This is the Deduction Customer part of the key to the Deduction Master table for the item you wish to transact on.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="TrnDate" type="xsd:string" minOccurs="0">
<xsd:annotation>
<xsd:documentation>This is the Transaction Date part of the key to the Deduction Master table for the item you wish to transact on. The format is CCYY-MM-DD.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="TrnTime" type="xsd:string" minOccurs="0">
<xsd:annotation>
<xsd:documentation>This is the Transaction Time part of the key to the Deduction Master table for the item you wish to transact on. It should be entered in the format hh:mm:ss.fff.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="Currency" type="xsd:string" minOccurs="0">
<xsd:annotation>
<xsd:documentation>The currency code of the transaction being posted.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="Function">
<xsd:annotation>
<xsd:documentation>The functions available to be posted against a deduction transaction. The following group of elements should be supplied, depending on the transaction type. R - Resolve, C - Reclassify, N - Notes, A - Auto write-off, I - Reinstate AR</xsd:documentation>
</xsd:annotation>
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="R" />
<xsd:enumeration value="C" />
<xsd:enumeration value="N" />
<xsd:enumeration value="A" />
<xsd:enumeration value="I" />
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="Resolve">
<xsd:annotation>
<xsd:documentation>Enter the following elements to resolve the deduction. This allows you to resolve, write off or offset deductions against promotions.</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Type">
<xsd:annotation>
<xsd:documentation>R - Resolve, W - Write-off, P - Offset promotions</xsd:documentation>
</xsd:annotation>
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="R" />
<xsd:enumeration value="W" />
<xsd:enumeration value="P" />
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="DeductionCode" type="xsd:string" minOccurs="0">
<xsd:annotation>
<xsd:documentation>This indicates the deduction code that must be used. This determines the General Ledger accounts to which the amount must be debited, to which the write-off must be posted, or offset the promotion.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="Amount" type="xsd:string" minOccurs="0">
<xsd:annotation>
<xsd:documentation>Enter the amount to be posted. This amount cannot exceed the amount undistributed.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="ResolutionCode" type="xsd:string" minOccurs="0">
<xsd:annotation>
<xsd:documentation>This indicates the resolution code to use. This is used for reporting purposes and is mandatory.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="PromotionCode" type="xsd:string" minOccurs="0">
<xsd:annotation>
<xsd:documentation> Enter the code of the promotion against which to offset the deduction. Only applicable to Offset promotions type.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="AccrualType" type="xsd:string" minOccurs="0">
<xsd:annotation>
<xsd:documentation>Indicate the accrual type against which to offset the deduction. Only applicable to Offset promotions type.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="Customer" type="xsd:string" minOccurs="0">
<xsd:annotation>
<xsd:documentation>Indicate the customer against whose accrual promotion balance the deduction must be offset. Only applicable to Offset promotions type.</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="Reclassify">
<xsd:annotation>
<xsd:documentation>Enter the following elements to reclassify all or part of a deduction.</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Customer" type="xsd:string" minOccurs="0">
<xsd:annotation>
<xsd:documentation>For master and sub accounts, the customer can be changed to the master account or any sub account in the grouping if the operator has access to the appropriate activity.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="DeductionCode" type="xsd:string" minOccurs="0">
<xsd:annotation>
<xsd:documentation>Enter the deduction code to which you want to reclassify the deduction. You can reclassify a deduction to the same deduction code and use the Amount field to split the deduction amount into smaller parts.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="Amount" type="xsd:string" minOccurs="0">
<xsd:annotation>
<xsd:documentation>Indicate the amount of the deduction you want to reclassify. This amount cannot be negative and cannot exceed the remaining amount. All or part of the deduction can be reclassified.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="Reference" type="xsd:string" minOccurs="0">
<xsd:annotation>
<xsd:documentation>Enter a notation for the reclassification.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="FollowUpDate" type="xsd:string" minOccurs="0">
<xsd:annotation>
<xsd:documentation>This indicates the date on which the deduction must be reviewed or followed up on. The format is CCYY-MM-DD.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="CopyNotes">
<xsd:annotation>
<xsd:documentation>Indicate whether to copy any notes defined against the original deduction code to the new deduction code. Y - yes, N - No.</xsd:documentation>
</xsd:annotation>
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="Y" />
<xsd:enumeration value="N" />
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="Notes">
<xsd:annotation>
<xsd:documentation>This function allows you to enter and attach free format comments to the deduction line. In addition, you can define a follow up date on which the deduction must next be reviewed.</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Note" type="xsd:string" minOccurs="0">
<xsd:annotation>
<xsd:documentation>Up to 100 lines of 100 characters can be entered into the single Note element.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="FollowUpDate" type="xsd:string" minOccurs="0">
<xsd:annotation>
<xsd:documentation>This indicates the date on which the deduction must be reviewed or followed up on. The format is CCYY-MM-DD.</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="AutoWriteOff">
<xsd:annotation>
<xsd:documentation>This function allows you to automatically write off deduction amounts below a specified value for all open deductions on file.</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:element name="DeductionsLessThan" type="xsd:string" minOccurs="0">
<xsd:annotation>
<xsd:documentation>Enter the amount below which deductions can be written off.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="ResolutionCode" type="xsd:string" minOccurs="0">
<xsd:annotation>
<xsd:documentation>Enter the resolution code for the write offs. This defaults to the entry in the Deduction resolution codes - Write off field (Trade Promotions Setup) but can be changed.</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="ReinstateAr">
<xsd:annotation>
<xsd:documentation>This function allows you to reverse the deduction by processing a debit note to the customer's account.</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Amount" type="xsd:string" minOccurs="0">
<xsd:annotation>
<xsd:documentation>Enter the deduction amount you want to reinstate. This is the total amount (including tax if applicable) at which the debit note will be created.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="Date" type="xsd:string" minOccurs="0">
<xsd:annotation>
<xsd:documentation>Enter the date for the debit note which will be created by this transaction.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="Reference" type="xsd:string" minOccurs="0">
<xsd:annotation>
<xsd:documentation>Enter a notation for the deduction reinstatement.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="ProductClass" type="xsd:string" minOccurs="0">
<xsd:annotation>
<xsd:documentation>Enter the product class to use for the transaction. This determines the Accounts Receivable and Sales revenue accounts to be used when the debit note is processed using the AR Invoice GL Integration program.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="InvoiceTerms" type="xsd:string" minOccurs="0">
<xsd:annotation>
<xsd:documentation>This indicates the invoice terms defined against the customer.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="GeographicArea" type="xsd:string" minOccurs="0">
<xsd:annotation>
<xsd:documentation>This indicates the geographic area code defined against the customer.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="Salesperson" type="xsd:string" minOccurs="0">
<xsd:annotation>
<xsd:documentation>This indicates the salesperson code defined against the customer.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="ResolutionCode" type="xsd:string" minOccurs="0">
<xsd:annotation>
<xsd:documentation>This indicates the resolution code to use. This is used for reporting purposes.</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
Output XML
The OUT.XML indicates a sample of the XML returned by this business object.
Copy
<?xml version="1.0" encoding="Windows-1252"?>
<!-- Copyright 1994-2025 SYSPRO Ltd. -->
<!--
This is an example XMLOut instance to demonstrate use of
the TPM Deduction Review Posting Business Object
-->
<tpmdeductionsreviewpost Language="05" Language2="EN" CssStyle="" DecFormat="1" DateFormat="01" Role="01" Version="8.0.000" OperatorPrimaryRole=" ">
<Item>
<GlJournalItem>
<GlYear>2009</GlYear>
<GlPeriod>03</GlPeriod>
<GlJournal>0000000524</GlJournal>
</GlJournalItem>
<GlJournalItem>
<GlYear>2009</GlYear>
<GlPeriod>03</GlPeriod>
<GlJournal>0000000525</GlJournal>
</GlJournalItem>
<ValidationStatus>
<TransactionResults>
<TransactionType>Resolution</TransactionType>
<PaymentCustomer>000000000000001</PaymentCustomer>
<DeductionCustomer>000000000000001</DeductionCustomer>
<Reference>Special promotion at entrance to store</Reference>
<Result />
</TransactionResults>
<Status>Successful</Status>
<TrnYear>2009</TrnYear>
<TrnMonth>03</TrnMonth>
<Journal>0000000028</Journal>
</ValidationStatus>
<ItemNumber>000001</ItemNumber>
</Item>
<StatusOfItems>
<ItemsProcessed>000001</ItemsProcessed>
<ItemsInvalid>000000</ItemsInvalid>
</StatusOfItems>
</tpmdeductionsreviewpost>
Prerequisites
No prerequisites are required to use this business object.
Limitations
No limitations apply to this business object.
Copyright © 2026 Syspro PTY Ltd.