SO Customer Balance Function
Object | SORTCB |
Class | Transaction |
Method(s) | Post |
Functional Area | Sales Orders Primary Posting |
Version released | SYSPRO 8 2021 R1 |
Functionality
The SO Customer Balance Function business object forms part of a suite of business objects that lets you correct imbalances between the active orders in SYSPRO and records held in the ArCustomer table.
It leverages the latest calculated figures posted to the SorCustomerBal table by the SO Customer Balances Query business object to perform the correction function in the ArCustomer table.
It does this by querying the SorCustomerBal table for the latest RunDateTime entry which is used to obtain all the customer figures calculated for that balance run and updating the ArCustomer table with the correct OutstOrdVal, NumOutstOrd, RelOrdOsValue figures.
The business object also compares the postings to the SorCustomerBal table during the balance query (ArCusOutstOrdVal, ArCusNumOutstOrd and ArCusRelOrdOsValue) against the current actual values in the ArCustomer table (OutstOrdVal, NumOutstOrd, RelOrdOsValue).
The balance correction is aborted if any discrepancies are encountered and a log of the changes are posted to the SorCustomerBalFix table
Prerequisites
This business object can only be accessed using the Health Check Correction Control business object and selecting the option to balance Customer SO value.
Input XML
The SORTCB.XML and SORTCB.XSD files indicate the parameters schema and an instance of an XML document for this business object.
The SORTCBDOC.XML and SORTCBDOC.XSD files indicate the schema and an instance of an XML document for this business object.
Output XML
The SORTCBOUT.XML indicates a sample of the XML returned by this business object.
Sample files

<?xml version="1.0" encoding="Windows-1252"?>
<!-- Copyright 1994-2020 SYSPRO Ltd.-->
<!--
Sample XML for the SO Customer Balance Posting Business Object
-->
<PostCustomerSOBalance xmlns:xsd="http://www.w3.org/2001/XMLSchema-instance" xsd:noNamespaceSchemaLocation="SORTCB.XSD">
</PostCustomerSOBalance>

<?xml version="1.0" encoding="Windows-1252"?>
<!-- Copyright 1994-2020 SYSPRO Ltd.-->
<!--
Sample XSD for the SO Customer Balance Posting Business Object
-->
<xsd:schema elementFormDefault="qualified" attributeFormDefault="unqualified" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="PostCustomerSOBalance">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base="xsd:string"/>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
</xsd:schema>

<?xml version="1.0" encoding="Windows-1252"?>
<!-- Copyright 1994-2019 SYSPRO Ltd.-->
<!--
Sample XML for the SO Customer Balance Business Object
-->
<PostCustomerSOBalance xmlns:xsd="http://www.w3.org/2001/XMLSchema-instance" xsd:noNamespaceSchemaLocation="SORTCBDOC.XSD">
<Options>
<TransactionDate/>
<LockType>H</LockType>
<UseBalanceResults>N</UseBalanceResults>
<BalanceRunDate/>
<BalanceRunTime/>
<DetailOrSummary>D</DetailOrSummary>
<MaxItemsToReturn>5000</MaxItemsToReturn>
</Options>
</PostCustomerSOBalance>

<?xml version="1.0" encoding="Windows-1252"?>
<!-- Copyright 1994-2020 SYSPRO Ltd.-->
<!--
Sample XMLIn for the SO customer balance Posting Business Object
-->
<xsd:schema elementFormDefault="qualified" attributeFormDefault="unqualified" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="PostCustomerSOBalance">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Options">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="TransactionDate" type="xsd:string" minOccurs="0"/>
<xsd:element name="LockType" type="xsd:string" minOccurs="0"/>
<xsd:element name="UseBalanceResults" type="xsd:string" minOccurs="0"/>
<xsd:element name="BalanceRunDate" type="xsd:string" minOccurs="0"/>
<xsd:element name="BalanceRunTime" type="xsd:string" minOccurs="0"/>
<xsd:element name="DetailOrSummary" type="xsd:string" minOccurs="0"/>
<xsd:element name="MaxItemsToReturn" type="xsd:string" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>

<?xml version="1.0" encoding="Windows-1252"?>
<!-- Copyright 1994-2020 SYSPRO Ltd.-->
<!--
Sample XML out for the SO customer balance Posting Business Object
-->
<PostCustomerSOBalance xmlns:xsd="http://www.w3.org/2001/XMLSchema-instance" xsd:noNamespaceSchemaLocation="SORTCBOUT.XSD">
<SystemInformation>
<CssStyle />
<Language>EN</Language>
<DecFormat>1</DecFormat>
<DateFormat>01</DateFormat>
<Role>01</Role>
<Version>8.0.000</Version>
<CompanyId>EDU1</CompanyId>
<CompanyName>The OUTDOORS Company</CompanyName>
<OperatorCode>ADMIN</OperatorCode>
<OperatorName>SYSPRO Administrator</OperatorName>
<OperatorGroup>ADMIN</OperatorGroup>
<OperatorEmailAddress />
<OperatorLocation />
<LocalCurrency>$</LocalCurrency>
<LocalCurrencyDesc>Local Currency</LocalCurrencyDesc>
<GlPrdPerYear>12</GlPrdPerYear>
<ReportDate>01/10/2020 13:58</ReportDate>
<UseSeparatorOnReports>N</UseSeparatorOnReports>
<SeparatorToUse>,</SeparatorToUse>
<OperatorPrimaryRole />
<NoOfDigits>2</NoOfDigits>
<DecCharToUse>.</DecCharToUse>
<BOMQtyPerDecimals>6</BOMQtyPerDecimals>
</SystemInformation>
<ChangesApplied>
<RowsAffected>14</RowsAffected>
<Item>
<Customer>0000001</Customer>
<Action>Correction by SO Health Check</Action>
<OldOutstOrdVal>3.00</OldOutstOrdVal>
<EditedOldOutstOrdVal>3.00</EditedOldOutstOrdVal>
<NewOutstOrdVal>319386444.04</NewOutstOrdVal>
<EditedNewOutstOrdVal>319386444.04</EditedNewOutstOrdVal>
<OldNumOutstOrd>2</OldNumOutstOrd>
<EditedOldNumOutstOrd>2.000</EditedOldNumOutstOrd>
<NewNumOutstOrd>16</NewNumOutstOrd>
<EditedNewNumOutstOrd>16.000</EditedNewNumOutstOrd>
<OldRelOrdOsValue>2.00</OldRelOrdOsValue>
<EditedOldRelOrdOsValue>2.00</EditedOldRelOrdOsValue>
<NewRelOrdOsValue>1273579624.16</NewRelOrdOsValue>
<EditedNewRelOrdOsValue>1273579624.16</EditedNewRelOrdOsValue>
</Item>
<Item>
<Customer>0000002</Customer>
<Action>Correction by SO Health Check</Action>
<OldOutstOrdVal>3.00</OldOutstOrdVal>
<EditedOldOutstOrdVal>3.00</EditedOldOutstOrdVal>
<NewOutstOrdVal>245250.00</NewOutstOrdVal>
<EditedNewOutstOrdVal>245250.00</EditedNewOutstOrdVal>
<OldNumOutstOrd>2</OldNumOutstOrd>
<EditedOldNumOutstOrd>2.000</EditedOldNumOutstOrd>
<NewNumOutstOrd>1</NewNumOutstOrd>
<EditedNewNumOutstOrd>1.000</EditedNewNumOutstOrd>
<OldRelOrdOsValue>2.00</OldRelOrdOsValue>
<EditedOldRelOrdOsValue>2.00</EditedOldRelOrdOsValue>
<NewRelOrdOsValue>133150.00</NewRelOrdOsValue>
<EditedNewRelOrdOsValue>133150.00</EditedNewRelOrdOsValue>
</Item>
<Item>
<Customer>0000006</Customer>
<Action>Correction by SO Health Check</Action>
<OldOutstOrdVal>3.00</OldOutstOrdVal>
<EditedOldOutstOrdVal>3.00</EditedOldOutstOrdVal>
<NewOutstOrdVal>0.00</NewOutstOrdVal>
<EditedNewOutstOrdVal>0.00</EditedNewOutstOrdVal>
<OldNumOutstOrd>2</OldNumOutstOrd>
<EditedOldNumOutstOrd>2.000</EditedOldNumOutstOrd>
<NewNumOutstOrd>0</NewNumOutstOrd>
<EditedNewNumOutstOrd>0.000</EditedNewNumOutstOrd>
<OldRelOrdOsValue>2.00</OldRelOrdOsValue>
<EditedOldRelOrdOsValue>2.00</EditedOldRelOrdOsValue>
<NewRelOrdOsValue>25.00</NewRelOrdOsValue>
<EditedNewRelOrdOsValue>25.00</EditedNewRelOrdOsValue>
</Item>
<Item>
<Customer>0000007</Customer>
<Action>Correction by SO Health Check</Action>
<OldOutstOrdVal>3.00</OldOutstOrdVal>
<EditedOldOutstOrdVal>3.00</EditedOldOutstOrdVal>
<NewOutstOrdVal>0.00</NewOutstOrdVal>
<EditedNewOutstOrdVal>0.00</EditedNewOutstOrdVal>
<OldNumOutstOrd>2</OldNumOutstOrd>
<EditedOldNumOutstOrd>2.000</EditedOldNumOutstOrd>
<NewNumOutstOrd>0</NewNumOutstOrd>
<EditedNewNumOutstOrd>0.000</EditedNewNumOutstOrd>
<OldRelOrdOsValue>2.00</OldRelOrdOsValue>
<EditedOldRelOrdOsValue>2.00</EditedOldRelOrdOsValue>
<NewRelOrdOsValue>5848.00</NewRelOrdOsValue>
<EditedNewRelOrdOsValue>5848.00</EditedNewRelOrdOsValue>
</Item>
<Item>
<Customer>0000008</Customer>
<Action>Correction by SO Health Check</Action>
<OldOutstOrdVal>3.00</OldOutstOrdVal>
<EditedOldOutstOrdVal>3.00</EditedOldOutstOrdVal>
<NewOutstOrdVal>621125.00</NewOutstOrdVal>
<EditedNewOutstOrdVal>621125.00</EditedNewOutstOrdVal>
<OldNumOutstOrd>2</OldNumOutstOrd>
<EditedOldNumOutstOrd>2.000</EditedOldNumOutstOrd>
<NewNumOutstOrd>3</NewNumOutstOrd>
<EditedNewNumOutstOrd>3.000</EditedNewNumOutstOrd>
<OldRelOrdOsValue>2.00</OldRelOrdOsValue>
<EditedOldRelOrdOsValue>2.00</EditedOldRelOrdOsValue>
<NewRelOrdOsValue>621125.00</NewRelOrdOsValue>
<EditedNewRelOrdOsValue>621125.00</EditedNewRelOrdOsValue>
</Item>
<Item>
<Customer>0000009</Customer>
<Action>Correction by SO Health Check</Action>
<OldOutstOrdVal>3.00</OldOutstOrdVal>
<EditedOldOutstOrdVal>3.00</EditedOldOutstOrdVal>
<NewOutstOrdVal>66850.00</NewOutstOrdVal>
<EditedNewOutstOrdVal>66850.00</EditedNewOutstOrdVal>
<OldNumOutstOrd>2</OldNumOutstOrd>
<EditedOldNumOutstOrd>2.000</EditedOldNumOutstOrd>
<NewNumOutstOrd>2</NewNumOutstOrd>
<EditedNewNumOutstOrd>2.000</EditedNewNumOutstOrd>
<OldRelOrdOsValue>2.00</OldRelOrdOsValue>
<EditedOldRelOrdOsValue>2.00</EditedOldRelOrdOsValue>
<NewRelOrdOsValue>-64000.00</NewRelOrdOsValue>
<EditedNewRelOrdOsValue>-64000.00</EditedNewRelOrdOsValue>
</Item>
<Item>
<Customer>0000010</Customer>
<Action>Correction by SO Health Check</Action>
<OldOutstOrdVal>3.00</OldOutstOrdVal>
<EditedOldOutstOrdVal>3.00</EditedOldOutstOrdVal>
<NewOutstOrdVal>0.00</NewOutstOrdVal>
<EditedNewOutstOrdVal>0.00</EditedNewOutstOrdVal>
<OldNumOutstOrd>2</OldNumOutstOrd>
<EditedOldNumOutstOrd>2.000</EditedOldNumOutstOrd>
<NewNumOutstOrd>0</NewNumOutstOrd>
<EditedNewNumOutstOrd>0.000</EditedNewNumOutstOrd>
<OldRelOrdOsValue>2.00</OldRelOrdOsValue>
<EditedOldRelOrdOsValue>2.00</EditedOldRelOrdOsValue>
<NewRelOrdOsValue>120.00</NewRelOrdOsValue>
<EditedNewRelOrdOsValue>120.00</EditedNewRelOrdOsValue>
</Item>
<Item>
<Customer>0000011</Customer>
<Action>Correction by SO Health Check</Action>
<OldOutstOrdVal>3.00</OldOutstOrdVal>
<EditedOldOutstOrdVal>3.00</EditedOldOutstOrdVal>
<NewOutstOrdVal>352000.00</NewOutstOrdVal>
<EditedNewOutstOrdVal>352000.00</EditedNewOutstOrdVal>
<OldNumOutstOrd>2</OldNumOutstOrd>
<EditedOldNumOutstOrd>2.000</EditedOldNumOutstOrd>
<NewNumOutstOrd>1</NewNumOutstOrd>
<EditedNewNumOutstOrd>1.000</EditedNewNumOutstOrd>
<OldRelOrdOsValue>2.00</OldRelOrdOsValue>
<EditedOldRelOrdOsValue>2.00</EditedOldRelOrdOsValue>
<NewRelOrdOsValue>352000.00</NewRelOrdOsValue>
<EditedNewRelOrdOsValue>352000.00</EditedNewRelOrdOsValue>
</Item>
<Item>
<Customer>0000012</Customer>
<Action>Correction by SO Health Check</Action>
<OldOutstOrdVal>3.00</OldOutstOrdVal>
<EditedOldOutstOrdVal>3.00</EditedOldOutstOrdVal>
<NewOutstOrdVal>840500.00</NewOutstOrdVal>
<EditedNewOutstOrdVal>840500.00</EditedNewOutstOrdVal>
<OldNumOutstOrd>2</OldNumOutstOrd>
<EditedOldNumOutstOrd>2.000</EditedOldNumOutstOrd>
<NewNumOutstOrd>1</NewNumOutstOrd>
<EditedNewNumOutstOrd>1.000</EditedNewNumOutstOrd>
<OldRelOrdOsValue>2.00</OldRelOrdOsValue>
<EditedOldRelOrdOsValue>2.00</EditedOldRelOrdOsValue>
<NewRelOrdOsValue>845540.00</NewRelOrdOsValue>
<EditedNewRelOrdOsValue>845540.00</EditedNewRelOrdOsValue>
</Item>
<Item>
<Customer>0000013</Customer>
<Action>Correction by SO Health Check</Action>
<OldOutstOrdVal>3.00</OldOutstOrdVal>
<EditedOldOutstOrdVal>3.00</EditedOldOutstOrdVal>
<NewOutstOrdVal>120568.00</NewOutstOrdVal>
<EditedNewOutstOrdVal>120568.00</EditedNewOutstOrdVal>
<OldNumOutstOrd>2</OldNumOutstOrd>
<EditedOldNumOutstOrd>2.000</EditedOldNumOutstOrd>
<NewNumOutstOrd>2</NewNumOutstOrd>
<EditedNewNumOutstOrd>2.000</EditedNewNumOutstOrd>
<OldRelOrdOsValue>2.00</OldRelOrdOsValue>
<EditedOldRelOrdOsValue>2.00</EditedOldRelOrdOsValue>
<NewRelOrdOsValue>-114472.00</NewRelOrdOsValue>
<EditedNewRelOrdOsValue>-114472.00</EditedNewRelOrdOsValue>
</Item>
<Item>
<Customer>0000014</Customer>
<Action>Correction by SO Health Check</Action>
<OldOutstOrdVal>3.00</OldOutstOrdVal>
<EditedOldOutstOrdVal>3.00</EditedOldOutstOrdVal>
<NewOutstOrdVal>160000.00</NewOutstOrdVal>
<EditedNewOutstOrdVal>160000.00</EditedNewOutstOrdVal>
<OldNumOutstOrd>2</OldNumOutstOrd>
<EditedOldNumOutstOrd>2.000</EditedOldNumOutstOrd>
<NewNumOutstOrd>1</NewNumOutstOrd>
<EditedNewNumOutstOrd>1.000</EditedNewNumOutstOrd>
<OldRelOrdOsValue>2.00</OldRelOrdOsValue>
<EditedOldRelOrdOsValue>2.00</EditedOldRelOrdOsValue>
<NewRelOrdOsValue>160000.00</NewRelOrdOsValue>
<EditedNewRelOrdOsValue>160000.00</EditedNewRelOrdOsValue>
</Item>
<Item>
<Customer>0000015</Customer>
<Action>Correction by SO Health Check</Action>
<OldOutstOrdVal>3.00</OldOutstOrdVal>
<EditedOldOutstOrdVal>3.00</EditedOldOutstOrdVal>
<NewOutstOrdVal>240665.00</NewOutstOrdVal>
<EditedNewOutstOrdVal>240665.00</EditedNewOutstOrdVal>
<OldNumOutstOrd>2</OldNumOutstOrd>
<EditedOldNumOutstOrd>2.000</EditedOldNumOutstOrd>
<NewNumOutstOrd>2</NewNumOutstOrd>
<EditedNewNumOutstOrd>2.000</EditedNewNumOutstOrd>
<OldRelOrdOsValue>2.00</OldRelOrdOsValue>
<EditedOldRelOrdOsValue>2.00</EditedOldRelOrdOsValue>
<NewRelOrdOsValue>-240600.00</NewRelOrdOsValue>
<EditedNewRelOrdOsValue>-240600.00</EditedNewRelOrdOsValue>
</Item>
<Item>
<Customer>0000016</Customer>
<Action>Correction by SO Health Check</Action>
<OldOutstOrdVal>3.00</OldOutstOrdVal>
<EditedOldOutstOrdVal>3.00</EditedOldOutstOrdVal>
<NewOutstOrdVal>80000.00</NewOutstOrdVal>
<EditedNewOutstOrdVal>80000.00</EditedNewOutstOrdVal>
<OldNumOutstOrd>2</OldNumOutstOrd>
<EditedOldNumOutstOrd>2.000</EditedOldNumOutstOrd>
<NewNumOutstOrd>1</NewNumOutstOrd>
<EditedNewNumOutstOrd>1.000</EditedNewNumOutstOrd>
<OldRelOrdOsValue>2.00</OldRelOrdOsValue>
<EditedOldRelOrdOsValue>2.00</EditedOldRelOrdOsValue>
<NewRelOrdOsValue>1630000.00</NewRelOrdOsValue>
<EditedNewRelOrdOsValue>1630000.00</EditedNewRelOrdOsValue>
</Item>
<Item>
<Customer>0000017</Customer>
<Action>Correction by SO Health Check</Action>
<OldOutstOrdVal>3.00</OldOutstOrdVal>
<EditedOldOutstOrdVal>3.00</EditedOldOutstOrdVal>
<NewOutstOrdVal>25169.76</NewOutstOrdVal>
<EditedNewOutstOrdVal>25169.76</EditedNewOutstOrdVal>
<OldNumOutstOrd>2</OldNumOutstOrd>
<EditedOldNumOutstOrd>2.000</EditedOldNumOutstOrd>
<NewNumOutstOrd>1</NewNumOutstOrd>
<EditedNewNumOutstOrd>1.000</EditedNewNumOutstOrd>
<OldRelOrdOsValue>2.00</OldRelOrdOsValue>
<EditedOldRelOrdOsValue>2.00</EditedOldRelOrdOsValue>
<NewRelOrdOsValue>25169.76</NewRelOrdOsValue>
<EditedNewRelOrdOsValue>25169.76</EditedNewRelOrdOsValue>
</Item>
</ChangesApplied>
</PostCustomerSOBalance>
Copyright © 2021 SYSPRO PTY Ltd.