17
Microsoft Dynamics GP Integrating with the Historical Inventory Trial Balance White Paper This paper provides guidance for ISV products that integrate with Inventory transaction posting. Date: April 18, 2008 http://www.microsoft.com/dynamics/gp INTEGRATE

Historical Inventory Trial Balance White Paper

Embed Size (px)

DESCRIPTION

Historical Inventory Trial Balance White Paper

Citation preview

Page 1: Historical Inventory Trial Balance White Paper

Microsoft Dynamics™ GP

Integrating with the Historical Inventory Trial Balance

White Paper

This paper provides guidance for ISV products that integrate with Inventory transaction posting.

Date: April 18, 2008

http://www.microsoft.com/dynamics/gp

INTEGRATE

Page 2: Historical Inventory Trial Balance White Paper

2

INTEGRATING WITH THE HISTORICAL INVENTORY TRIAL BALANCE

Table of Contents

Introduction ................................................................................................ 3

Code and data components ......................................................................... 3

Enabling HITB functionality ........................................................................ 4

Posting data to the HITB table .................................................................... 4 Using Inventory transaction work tables and posting scripts ...................................................... 4 Posting data directly to the Inventory purchase receipts tables .................................................. 4 Using lower-level posting scripts to post transactions to Inventory ............................................. 5

SEE30303 table definition ........................................................................... 6 SEE30303 table indexes (keys) ............................................................................................ 12

Script API .................................................................................................. 13 ivHITBActivated() ........................................................................................................... 13 ivHITB_Start_TRIGGER .................................................................................................... 13 ivHITB_Finish_TRIGGER .................................................................................................. 13 ivHITBDetail_Reserve_TRIGGER ........................................................................................ 13 ivHITBDetail_Add_TRIGGER ............................................................................................. 13 ivHITBDetail_CacheItemValues_TRIGGER ........................................................................... 15 ivHITBDetail_GetCachedItemValues_TRIGGER .................................................................... 15 ivHITBDetail_CacheTrxValues_TRIGGER ............................................................................. 16 ivHITBDetail_GetCachedTrxValues_TRIGGER ...................................................................... 16 ivHITBDetail_CacheTrxLineValues_TRIGGER ....................................................................... 16 ivHITBDetail_GetCachedTrxLineValues_TRIGGER ................................................................. 16 ivHITBDetail_UpdateWithGLPostedValues_TRIGGER ............................................................. 16

Page 3: Historical Inventory Trial Balance White Paper

3 INTEGRATING WITH THE HISTORICAL INVENTORY TRIAL BALANCE

Introduction This article describes how to integrate with the Historical Inventory Trial Balance (HITB) functionality in Microsoft Dynamics™ GP 10.0. Specifically, this article details the changes necessary in integrating applications whose posting logic updates item purchase receipt data in the Inventory module.

For integrating applications that post to Inventory by creating transactions in the Inventory Transaction Work tables and then use the existing posting routines provided by Microsoft Dynamics GP (i.e., global procedures IV_Post_Batch or IV_Post_Transaction), no changes are necessary to support HITB because all necessary changes are embedded within those routines already.

For integrating applications that post directly to the Inventory purchase receipt and transaction history tables, the appropriate related data must be created in a new table used to track HITB details. If the correct HITB data is not created, the Historical Inventory Trial Balance Report will not balance with the corresponding inventory accounts in General Ledger.

Code and data components The following components have been added to Microsoft Dynamics GP Release 10.0 Service Pack 2 to support the HITB functionality. (Note that Release 10.0 Service Pack 2 is a part of Release 10.0 Feature Pack 1, and for the purposes of this white paper, the two release names can be used interchangeably.)

• HITB dictionary – A new dictionary has been added, which includes the HITB code, reports and data model. This dictionary is named HTB5597.dic and has product ID 5597. This dictionary is automatically installed with Release 10.0 Service Pack 2.

• Inventory Transaction History Detail table – A new table has been added in which HITB data will be stored. This table (SEE30303) is automatically created in each company database when that company is updated to Release 10.0 Service Pack 2. A detailed data model definition is included later in this document.

• HITB report stored procedure – A new stored procedure has been added to collect and aggregate the data used to print the Historical Inventory Trial Balance Report. This stored procedure (ivCreateHistoricalIVTrialBalance) is automatically installed in each company database when that company is updated to Release 10.0 Service Pack 2.

Page 4: Historical Inventory Trial Balance White Paper

4

INTEGRATING WITH THE HISTORICAL INVENTORY TRIAL BALANCE

Enabling HITB functionality The following conditions must be met for the HITB functionality to be enabled in Microsoft Dynamics GP. If these conditions are not met, HITB data will not be created by Inventory posting, and the Historical Inventory Trial Balance Report will not be available within Microsoft Dynamics GP.

• HITB code and data components are installed. Specifically, the HTB5597.dic file must be installed and included in the Dynamics.set file. This is done automatically when Release 10.0 Service Pack 2 is installed.

• The following row is included in the SY01401 table (in the company database):

USERID = ‘sa’, coDefaultType = 5597, USRDFSTR = ‘1’

This row is created automatically when a new company is created in Release 10.0 Service Pack 2.

For existing companies, created prior to installing Release 10.0 Service Pack 2, this row is created by the HITB Reset Tool provided by Microsoft Dynamics GP Support.

IMPORTANT: This tool must be run on existing companies to create the appropriate “beginning balance” data in the SEE30303 table and to ensure that the Inventory sub-ledger and General Ledger balance properly. If this is not done, the Historical Inventory Trial Balance Report will not balance with General Ledger.

Posting data to the HITB table There are several possible approaches for posting data to the HITB table (SEE30303), depending on which of the following methods an integrating application uses to post transactions to the Inventory module and its data tables.

Using Inventory transaction work tables and posting scripts Using this method, an integrating product writes transactions to the Inventory transaction work tables (IV10000 through IV10004) and then uses the existing Microsoft Dynamics GP posting scripts (global procedure IV_Post_Batch or IV_Post_Transaction) to post those transactions.

Products using this method automatically inherit the HITB functionality with no additional code changes.

The same is true of products which write transactions to the transaction work tables for other modules (Sales Order Processing, Purchase Order Processing, Invoicing, etc.) that post through Inventory, and use the associated module posting routines. Because these routines already handle posting data to HITB, additional code changes in the integrating product should not be necessary.

Posting data directly to the Inventory purchase receipts tables Using this method, an integrating product writes data directly to the Inventory purchase receipts tables (IV10200 and IV10201) without using existing Microsoft Dynamics GP posting scripts.

Products using this method will need to also add the appropriate related data to the SEE30303 table.

The table definition and supporting APIs included in this document provide the necessary framework for adding the data to the SEE30303 table. See also the posting code pattern outlined in the Using lower-level posting scripts to post transactions to Inventory section below.

Page 5: Historical Inventory Trial Balance White Paper

5 INTEGRATING WITH THE HISTORICAL INVENTORY TRIAL BALANCE

Using lower-level posting scripts to post transactions to Inventory Using this method, an integrating product has its own batch and transaction posting scripts, but makes use of lower-level Inventory posting scripts (those not documented in the Microsoft Dynamics GP SDK) to post transactions into Inventory module data tables.

Products using this method will need to be modified to include additional code as shown in the code pattern listed below. This ensures that the posting environment is set up properly for the HITB calls within subsequent (lower-level) purchase receipt processing scripts.

The following outlines the basic posting code pattern used in Microsoft Dynamics GP, provided as an example. Items added for HITB are in red.

I. Post Batch script

a. Post Transaction script

i. Posting pre-verification processing (if this fails, don’t do the following steps)

ii. Call ivHITB_Start_TRIGGER (to initialize the HITB sub-system)

iii. Call ivHITBDetail_CacheTrxValues_TRIGGER (to cache values typically stored with the transaction header)

iv. Line item posting loop

1. Call ivHITBDetail_CacheTrxLineValues_TRIGGER (to cache values typically stored with the transaction line item)

2. Post line item to Inventory (purchase receipts, etc.)

a. This should call the appropriate increase/decrease scripts in Inventory that will automatically handle the rest of the HITB data creation along with the existing purchase receipt handling.

3. When done posting the last line item or the General Ledger “black box” array is full:

a. Call GL_BB_Create_Batch_Hdr_and_Activity_V410 to post distributions for the line items to General Ledger.

v. call ivHITBDetail_UpdateWithGLPostedValues_TRIGGER (to set the General Ledger transaction values on the HITB records generated by posting this line item)

1. Note that this call may be made inside the line item posting loop, depending on how the integrating application posts distributions to General Ledger for each line item. For example, Microsoft Dynamics GP code uses an array (of General Ledger distributions) in conjunction with the General Ledger “black box” posting routines. That array is populated within the line item posting loop. When the array is full, the distributions are posted to General Ledger, so at that point the General Ledger values need to be applied to the HITB records created up to that point in time. Thus Microsoft Dynamics GP code calls this script within the line item posting loop.

vi. call ivHITB_Finish_TRIGGER (with false parameter)

Page 6: Historical Inventory Trial Balance White Paper

6

INTEGRATING WITH THE HISTORICAL INVENTORY TRIAL BALANCE

SEE30303 table definition The following table lists the columns (fields) in the Inventory Transaction History Detail table.

Field name Data type Physical name Description

Item Number String 30 ITEMNMBR The item number being affected by this transaction.

Sequence Number Long Integer SEQNUMBR Sequence number per Item Number to ensure uniqueness of primary key.

Document Number String 20 DOCNUMBR Number of the document being posted or revalued.

Document Date Date DOCDATE Date of the document/transaction being posted or revalued.

GL Posting Date Date GLPOSTDT The date assigned to the related General Ledger transaction(s) – indicates the date on which General Ledger balances were affected by this transaction. This is also the General Ledger date that is saved to the IV30200 table.

Location Code String 10 LOCNCODE The location code/site for the transaction.

Receipt Number String 20 RCPTNMBR The number of the purchase receipt that increases inventory (from table IV10200). This will be blank for decrease type transactions and cost variances on sold receipts.

Receipt SEQ Number Long Integer RCTSEQNM The sequence number of the purchase receipt layer being added, removed, or directly adjusted by this transaction. This is a value that enables the ability to link directly back to the IV10200 and IV10201 tables.

Purchase Receipt Type Drop-down list

PCHSRCTY Identifies what type of transaction increased inventory. The values are: 1 – Adjustment 2 – Variance 3 – Transfer 4 – Override 5 – Receipt 6 – Return 7 – Assembly 8 – In Transit Transfer

Page 7: Historical Inventory Trial Balance White Paper

7 INTEGRATING WITH THE HISTORICAL INVENTORY TRIAL BALANCE

Field name Data type Physical name Description

Document Type Drop-down List

DOCTYPE The type of transaction being posted. Types 1-12 are standard Inventory document types: 1 – IV Adjustment 2 – IV Variance 3 – IV Transfer 4 – Receipt from other modules ** 5 – Return from Invoicing or Sales Order Processing 6 – Sale from Invoicing or Sales Order Processing 7 – BOM (Bill of Materials) 8 – Adjust Cost Utility 9 – Cost adjustment from closing a PO short 10 – Cost adjustment from a PO Return 11 – Cost adjustment from PO Invoice Match 12 – Cost adjustment from PO Landed Cost Match Type 100 represents a beginning balance record created only by the HITB reset tool: 100 – beginning balance Types 101-112 represent adjustments to the unit cost on “sold receipts” in the IV10201 table: 101 – Cost variance on an IV Adjustment 102 – Cost variance on an IV Variance 103 – Cost variance on an IV Transfer 104 – Cost variance on an IV Receipt from another module ** 105 – Cost variance on a SOP or Invoicing Return 106 – Cost variance on a SOP or Invoicing Sale 107 – Cost variance on a BOM transaction 108 – Cost variance on a purchase receipt from using the Adjust Cost Utility 109 – Cost variance resulting from closing a PO short 110 – Cost variance from PO return 111 – Cost variance from an Invoice Match in Purchase Order Processing (invoiced at different cost than shipment) 112 – Cost variance from a Landed Cost Match in Purchase Order Processing (invoiced with different landed cost than was on the shipment)

Page 8: Historical Inventory Trial Balance White Paper

8

INTEGRATING WITH THE HISTORICAL INVENTORY TRIAL BALANCE

Field name Data type Physical name Description

QTY Type Drop-down list

QTYTYPE This is to indicate what quantity type is affected for the specific transaction. 1 – On Hand 2 – Returned 3 – In Use 4 – In Service 5 – Damaged

U Of M String 8 UOFM The unit of measure used for the transaction line item. For cost variance records, this will be blank.

TRX QTY In Base Currency TRXQTYInBase The quantity from the transaction that increased or decreased the inventory quantity. This quantity is in the item’s base unit of measure. This value will be negative for decreases (outflows) and positive for increases (inflows). This will be zero for cost variance records.

TRX QTY Currency TRXQTY The quantity from the transaction line item in the unit of measure used on the originating transaction. Note that when the quantity comes from multiple purchase receipts, there will be multiple HITB records. In that case, the TRX QTY will be the full quantity from the originating transaction’s line item, not a proportional split (in U Of M) of the quantity from the specific purchase receipt. This will be zero for cost variance records.

Variance Qty Currency VARIANCEQTY The quantity for any records generated in this table due to cost variances. This value will never be negative. It will reflect the quantity that is affected by the cost variance.

Unit Cost Currency UNITCOST For original increase/decrease transactions, this will contain the unit cost for those transactions (always positive). For cost variances, this will contain the difference between the old and new unit cost. If the new cost is less than the old cost, this value will be negative; if the new cost is more than the old cost, this value will be positive.

Page 9: Historical Inventory Trial Balance White Paper

9 INTEGRATING WITH THE HISTORICAL INVENTORY TRIAL BALANCE

Field name Data type Physical name Description

Extended Cost Currency EXTDCOST Extended cost or extended cost variance for this record. This will be the same amount used for either the credit or debit amount, but it will include a sign reflecting the impact on the Inventory value. The basic formula is: If TRXQTYInBase <> 0 then EXTDCOST = (TRXQTYInBase * UNITCOST) else EXTDCOST = (VARIANCEQTY * UNITCOST) Note that this value is rounded the same as the General Ledger distribution amounts, which is generally using the decimal places assigned to the functional currency for the company.

Decimal Places QTYS Drop-down list

DECPLQTY Decimal places setting for the item for quantities.

Decimal Places Currency

Drop-down list

DECPLCUR Decimal places setting for the item for currency.

IsOverrideReceipt Boolean IsOverrideReceipt Indicates whether the record is for an override purchase receipt or not. Its value is true if the related purchase receipt’s ‘Receipt Type’ = 4.

IsOverrideRelieved Boolean IsOverrideRelieved True if the override receipt is fully relieved (so the override receipt has been removed from the IV10200 table). False if this is a non-override receipt or the override receipt is not yet fully relieved.

OverrideRelievedDate Date OverrideRelievedDate The date on which the override was fully relieved. Note that this is the SQL Server® date (not the Microsoft Dynamics GP user date) on which the IsOverrideRelieved flag was set to true.

Originating Revalued Receipt Number

String 20 ORVRCTNMB Identifies the original purchase receipt that was revalued, which subsequently caused the adjustment to the cost of the purchase receipt identified by ‘Receipt Number’.

History Module String 3 HSTMODUL Identifies the module from which this transaction originated.

Originating TRX Source

String 13 ORTRXSRC The transaction source for the originating transaction that affected inventory.

Line SEQ Number Currency LNSEQNBR The line sequence number from the IV30300 table.

Line Item Sequence Long Integer LNITMSEQ The line item sequence number for Sales Order Processing transactions (enables a link back to SOP_LINE_HIST table).

Page 10: Historical Inventory Trial Balance White Paper

10

INTEGRATING WITH THE HISTORICAL INVENTORY TRIAL BALANCE

Field name Data type Physical name Description

Component Sequence Long Integer CMPNTSEQ The component sequence number for Sales Order Processing transactions (in case the item is a component on a kit sold or returned through Sales Order Processing).

Source Reference Number

String 30 SRCRFRNCNMBR This is the third party dictionary reference number that usually contains the document number of the third party transaction that caused the change in inventory. This value is also stored in the IV10000 and IV30200 tables.

Vendor ID String 15 VENDORID The vendor ID (or sometimes the transaction type) of the increase transaction. Contains the same value as in the IV10200 table.

PO Number String 17 PONUMBER The PO Number (or sometimes the transaction type) of the increase transaction. Contains the same value as in the IV10200 table.

Transaction Reference Integer TRXREFERENCE Identifies the source of the transaction (or the adjusted sold receipt). 101 = BOM 102 = Invoicing Invoice 103 = IV Adjustment 104 = IV Transfer 105 = IV Variance 106 = MFG Close 107 = MFG Component Trx Entry 108 = MFG Receipt 109 = POP Purchase Return 110 = SOP Invoice 111 = IV Stock Count 112 = Field Service Service Call 113 = Field Service RMA Entry 114 = Field Service Return 115 = Field Service Depot 117 = IV Reconcile outflow 118 = Conversion Record 119 = POP Edit PO Status 120 = Adjust Cost Utility 121 = POP Invoice PPV 122 = POP Invoice Landed Cost 123 = POP Receipt 124 = SOP Return 125 = Invoicing Return 126 = In-Transit Transfer

Valuation Method Drop-down list

VCTNMTHD The valuation method of the item at the time of the transaction.

Page 11: Historical Inventory Trial Balance White Paper

11 INTEGRATING WITH THE HISTORICAL INVENTORY TRIAL BALANCE

Field name Data type Physical name Description

IV IV Index Long integer IVIVINDX The index for the Inventory account affected by this transaction. This is the account to which the credit or debit amount will be posted.

IV IV Offset Index Long integer IVIVOFIX The index for the offset account affected by this transaction (PPV, IV offset, variance, COGS, etc.). This is the account to which the offset of the credit or debit amount will be posted.

Journal Entry Long integer JRNENTRY The journal entry number used for the General Ledger distributions created for this transaction.

TRX Source String 13 TRXSORCE The transaction source assigned on the detail transaction in General Ledger.

Credit Amount Currency CRDTAMNT The credit amount being posted to General Ledger for the Inventory account.

Debit Amount Currency DEBITAMT The debit amount being posted to General Ledger for the Inventory account.

Date Date DATE1 The date (from SQL Server) when this row was added to the table.

Time Time TIME1 The time (from SQL Server) when this row was added to the table.

** Receipts for transactions from other modules include:

• POP Shipment • POP Invoice • POP Shipment/Invoice • In-Transit Transfer • POP Return • POP Return for Credit • POP Inventory Return • POP Inventory Return for Credit

Page 12: Historical Inventory Trial Balance White Paper

12

INTEGRATING WITH THE HISTORICAL INVENTORY TRIAL BALANCE

SEE30303 table indexes (keys)

Key name and attributes Key fields Segment attributes

ivHITBDetailIdx_ID

Primary, Unique

Item Number

Document Date ascending

Receipt SEQ Number

Sequence Number

ivHITBDetailIdx_TrxByGLDate

Unique

GL Posting Date ascending

Item Number

TRX QTY

Extended Cost

Sequence Number

ivHITBDetailIdx_TrxByDocDate

Unique

Document Date ascending

Item Number

TRX QTY

Extended Cost

Sequence Number

ivHITBDetailIdx_ItemSequence

Unique

Item Number

Sequence Number

ivHITBDetailIdx_Aggregate

Unique, Clustered

GL Posting Date ascending

Item Number

QTY Type

Sequence Number

Page 13: Historical Inventory Trial Balance White Paper

13 INTEGRATING WITH THE HISTORICAL INVENTORY TRIAL BALANCE

Script API This section documents the scripts defined in the core Microsoft Dynamics GP dictionary for use in posting code.

ivHITBActivated() This global function returns a Boolean value indicating whether the HITB code is loaded and enabled. See the Enabling HITB functionality section for the conditions that determine whether HITB functionality is enabled.

Parameters:

• (none)

ivHITB_Start_TRIGGER This global procedure initializes the HITB supporting code and cache data structures. It should be called at the start of the posting process for a transaction.

Parameters:

• (none)

ivHITB_Finish_TRIGGER This global procedure finalizes the HITB data and moves it from the cache to the SEE30303 table. It should be called at the end of the posting process for a transaction. Note that if it is not called, the data will not get added to the SEE30303 table.

Parameters:

• fAbort – [in] a Boolean value indicating whether the posting process was interrupted or aborted. If true, the HITB data will be discarded from the cache rather than being transferred to the SEE30303 table.

ivHITBDetail_Reserve_TRIGGER This global procedure reserves a record in the HITB data cache and returns the sequence number assigned to that record. This is helpful if you need to reserve a sequence number early in processing (before you know the full details of the HITB record), so records added by subsequent processing appear after the one you’ve reserved (when sorting or iterating by sequence number).

Parameters:

• ‘Item Number’ – [in] The item for which a HITB record will be created in the data cache.

• ‘Sequence Number’ – [out] The sequence number reserved for the new record in the data cache.

ivHITBDetail_Add_TRIGGER This global procedure adds a record to the HITB data cache. Use this whenever a new HITB record needs to be generated. Note that the ivHITB_Start_TRIGGER script must be called at some point prior to this in code execution to ensure the data cache is properly initialized.

Also, while this is primarily intended for adding records to the data cache, it can also be use to update an existing record in the data cache. In order to do use it in this manner, the ‘Item Number’ and ‘Sequence Number’ values must be known for the record you wish to update. Additionally, when used in this manner, only the values being updated need to be passed into this procedure; those which you do not wish to change can be passed in as empty values (which will be ignored when updating the record).

Page 14: Historical Inventory Trial Balance White Paper

14

INTEGRATING WITH THE HISTORICAL INVENTORY TRIAL BALANCE

Note that the following SEE30303 table values are not included as parameters. These are set internally by the HITB code as follows:

• IsOverrideReceipt – Set to true if the 'Purchase Receipt Type' parameter’s value is 4; otherwise, it is set to false.

• IsOverrideRelieved – Set to false.

• OverrideRelievedDate – Set to an empty date value.

• Date – Set to the date from the SQL Server when the record is saved to the data cache.

• Time – Set to the time from the SQL Server when the record is saved to the data cache.

Parameters (see the SEE30303 table definition for descriptions of each field):

• 'Item Number' – [in]

• 'Sequence Number' – [in] This value should always be zero when adding a new record. If this script is being called to update an existing HITB record in the data cache, the appropriate sequence number should be used.

• 'Document Date' – [in]

• 'GL Posting Date' – [in] This value is often not yet known at the time the line item is being posted, so it can be left empty (zero) at this point and updated later.

• 'Document Number' – [in]

• 'Document Type' – [in]

• 'Location Code' – [in]

• 'Receipt Number' – [in]

• 'Receipt SEQ Number' – [in]

• 'Purchase Receipt Type' – [in]

• 'QTY Type' – [in]

• 'U Of M' – [in]

• 'TRX QTY In Base' – [in]

• 'TRX QTY' – [in]

• 'Variance Qty' – [in]

• 'Unit Cost' – [inout] Note that this value is, in certain cases, altered by Microsoft Dynamics GP Manufacturing.

• 'Extended Cost' – [inout] Note that this value is, in certain cases, altered by Microsoft Dynamics GP Manufacturing.

• 'Decimal Places QTYS' – [in]

• 'Decimal Places Currency' – [in]

• 'Originating Revalued Receipt Number' – [in]

• 'History Module' – [in]

• 'Originating TRX Source' – [in]

• 'Line SEQ Number' – [in]

• 'Line Item Sequence' – [in]

• 'Component Sequence' – [in]

Page 15: Historical Inventory Trial Balance White Paper

15 INTEGRATING WITH THE HISTORICAL INVENTORY TRIAL BALANCE

• 'Source Reference Number' – [in]

• 'Vendor ID' – [in]

• 'PO Number' – [in]

• 'Transaction Reference' – [in]

• 'Valuation Method' – [in]

• 'IV IV Index' – [in]

• 'IV IV Offset Index' – [in]

• 'Journal Entry' – [in] This value is often not yet known at the time the line item is being posted, so it can be left empty (zero) at this point and updated later.

• 'TRX Source' – [in] This value is sometimes not yet known at the time the line item is being posted, so it can be left empty at this point and updated later.

• 'Credit Amount' – [inout] Note that this value is, in certain cases, altered by Microsoft Dynamics GP Manufacturing.

• 'Debit Amount' – [inout] Note that this value is, in certain cases, altered by Microsoft Dynamics GP Manufacturing.

• nTriggerFlag – [optional in] An integer used to tell Microsoft Dynamics GP Manufacturing whether to modify distribution values during posting. To prevent Manufacturing from modifying the distribution values, exclude or pass 0 to this parameter. In general, though, pass 1 to this parameter.

ivHITBDetail_CacheItemValues_TRIGGER This global procedure saves certain item-specific values for later use when adding the HITB record to the data cache. This is useful when these values are known only outside of the scope of the code that adds the HITB records to the data cache. These values can later be retrieved using global procedure ivHITBDetail_GetCachedItemValues_TRIGGER.

Values cached by this procedure are:

• Item Number

• Valuation Method

• Decimal Places QTYS

• Decimal Places Currency

Parameters:

• table IV_Item_MSTR – [in] The item master table buffer, positioned on the item record for which you wish to cache the values.

ivHITBDetail_GetCachedItemValues_TRIGGER This global procedure returns the values cached by the ivHITBDetail_CacheItemValues_TRIGGER procedure.

Parameters:

• ‘Item Number’ – [inout] This value is provided mainly to validate that the cached values are for the desired item number.

• 'Valuation Method' – [out] The valuation method cached for the item.

• 'Decimal Places QTYS' – [out]

• 'Decimal Places Currency' – [out]

Page 16: Historical Inventory Trial Balance White Paper

16

INTEGRATING WITH THE HISTORICAL INVENTORY TRIAL BALANCE

ivHITBDetail_CacheTrxValues_TRIGGER This global procedure saves certain values (which are generally stored with the transaction header information) for later use when adding the HITB record to the data cache. This is useful when these values are known only outside of the scope of the code which adds the HITB records to the data cache. These values can later be retrieved using global procedure ivHITBDetail_GetCachedTrxValues_TRIGGER.

Parameters:

• 'History Module'– [in]

• 'TRX Source' – [in]

• 'Source Reference Number' – [in]

ivHITBDetail_GetCachedTrxValues_TRIGGER This global procedure returns the values cached by the ivHITBDetail_CacheTrxValues_TRIGGER procedure.

Parameters:

• 'History Module'– [out]

• 'TRX Source' – [out]

• 'Source Reference Number' – [out]

ivHITBDetail_CacheTrxLineValues_TRIGGER This global procedure saves certain values (which are generally stored with the transaction line item information) for later use when adding the HITB record to the data cache. This is useful when these values are known only outside of the scope of the code that adds the HITB records to the data cache. These values can later be retrieved using global procedure ivHITBDetail_GetCachedTrxLineValues_TRIGGER.

Parameters:

• 'Line Item Sequence' – [in]

• 'Component Sequence' – [in]

• 'U Of M' – [in]

• 'TRX QTY' – [in]

ivHITBDetail_GetCachedTrxLineValues_TRIGGER This global procedure returns the values cached by the ivHITBDetail_CacheTrxLineValues_TRIGGER procedure.

Parameters:

• 'Line Item Sequence' – [out]

• 'Component Sequence' – [out]

• 'U Of M' – [out]

• 'TRX QTY' – [out]

ivHITBDetail_UpdateWithGLPostedValues_TRIGGER This global procedure updates any records in the HITB data cache (which have not already been assigned GL posting values) with the specified posting date, journal entry number and (optionally) transaction source (batch ID). This is useful when many line items are posted before the related GL

Page 17: Historical Inventory Trial Balance White Paper

17 INTEGRATING WITH THE HISTORICAL INVENTORY TRIAL BALANCE

distributions get posted (so there are records in the data cache without GL transaction information assigned to them).

Parameters:

• 'GL Posting Date' – [in] The date on which the distributions were posted to GL.

• 'Journal Entry' – [in] The Journal Entry Number to which the GL distributions have been assigned.

• 'TRX Source' – [optional in] The transaction source to which the journal entry is assigned in GL.

The information contained in this document represents the current view of Microsoft Corporation on the issues discussed as of the date of publication. Because Microsoft must respond to changing market conditions, this document should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information presented after the date of publication.

This document is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED, OR STATUTORY, AS TO THE INFORMATION IN THIS DOCUMENT.

Complying with all applicable copyright laws is the responsibility of the user. Without limiting the rights under copyright, no part of this document may be reproduced, stored in or introduced into a retrieval system, or transmitted in any form or by any means (electronic, mechanical, photocopying, recording, or otherwise), or for any purpose, without the express written permission of Microsoft Corporation.

Microsoft may have patents, patent applications, trademarks, copyrights, or other intellectual property rights covering subject matter in this document. Except as expressly provided in any written license agreement from Microsoft, the furnishing of this document does not give you any license to these patents, trademarks, copyrights, or other intellectual property.

© 2008 Microsoft Corporation. All rights reserved.

Microsoft, the Microsoft Dynamics Logo, Microsoft Dynamics, and SQL Server are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries.

Microsoft Dynamics is a line of integrated, adaptable business management solutions that enables you and your people to make business decisions with greater confidence. Microsoft Dynamics works like and with familiar Microsoft software, automating and streamlining financial, customer relationship and supply chain processes in a way that helps you drive business success. U.S. and Canada Toll Free 1-888-477-7989 Worldwide +1-701-281-6500 0Hwww.microsoft.com/dynamics