How Much Data Do We Have In Solomon?
This is a question that I often ask customers when we plan for an integration with Infuse. We have a query we use to find out how many Customers, Products, Units of Measures, Sales Orders, and Order Management Invoices are in Solomon. From this we can estimate the complexity of the integration and how much time it will take for the initial data load. Here is the actual SQL script we use.
/*************************************************************************************************/
/*EHTC Infuse - Integration for Solomon and Microsoft CRM
EHTC Technology Solutions, A Division of Echelbarger, Himebaugh, Tamm & Co,. PC
Copyright (C) 2004 EHTC Technology Solutions
Title: InitialSolomonRecordCount.sql
Description: This script will return the number of initial records that will need to be
imported into MSCRM. The results can then be used to estimate the
processing time requires for the initial data load into MSCRM.
IMPORTANT NOTE: This script must be executed against the Solomon Application database. */
/*************************************************************************************************/
SET NOCOUNT ON
/* Declare variables */
DECLARE @CUSTOMER INT, @SOADDRESS INT,
@INVENTORY INT, @INUNIT INT,
@SOHEADER INT, @SOLINE INT,
@SOHEADER_Q INT, @SOLINE_Q INT,
@SOHEADER_O INT, @SOLINE_O INT,
@ARDOC_OM INT, @ARTRAN_OM INT,
@ARDOC_AR INT, @ARTRAN_AR INT
/* Set variables */
/*** Customers ***/
SET @CUSTOMER = (SELECT COUNT(*) FROM Customer
WHERE CustID <> '')
/*** Shipping Addresses ***/
SET @SOADDRESS = (SELECT COUNT(*) FROM SOAddress
WHERE CustID <> '' OR ShipToID <> '')
/*** Inventory Items ***/
SET @INVENTORY = (SELECT COUNT(*) FROM Inventory
WHERE InvtID <> '')
/*** Units of Measure ***/
SET @INUNIT = (SELECT COUNT(*) FROM INUnit
WHERE FromUnit <> '' OR ToUnit <> '')
/*** Order Management Sales Orders (Sales Order, Invoice, Will Call, and Manual Order Types ***/
SET @SOHEADER = (SELECT COUNT(s.OrdNbr) FROM SOHeader s, SOType t
WHERE t.SOTypeID = s.SOTypeID and t.CpnyID = s.CpnyID
AND t.Behavior IN ('SO', 'INVC', 'WC', 'MO')
AND s.OrdNbr <> '')
SET @SOLINE = (SELECT COUNT(l.LineRef) FROM SOLine l, SOHeader h, SOType t
WHERE (h.CpnyID = l.CpnyID and h.OrdNbr = l.OrdNbr)
AND (t.SOTypeID = h.SOTypeID and t.CpnyID = h.CpnyID)
AND t.Behavior IN ('SO', 'INVC', 'WC', 'MO')
AND l.InvtID <> ''
AND l.OrdNbr <> '')
/*** Invoices originating in Order Management ***/
SET @ARDOC_OM = (SELECT COUNT(*) FROM ARDoc AS d
/* OM Only */ JOIN SOShipHeader AS h on h.CpnyID = d.CpnyID and h.InvcNbr = d.RefNbr
WHERE d.DocType = 'IN' AND d.Rlsed = 1
AND (d.BatNbr <> '' OR d.BatSeq <> ''
OR d.CustID <> '' OR d.DocType <> ''
OR d.RefNbr <> ''))
SET @ARTRAN_OM = (SELECT COUNT(*) FROM ARTran AS t
/* OM Only */ JOIN ARDoc AS d ON d.CpnyID = t.CpnyID and d.RefNbr = t.RefNbr
JOIN SOShipHeader AS h ON h.CpnyID = t.CpnyID and h.InvcNbr = t.RefNbr
JOIN SOShipLine AS l ON l.CpnyID = h.CpnyID and l.ShipperID = h.ShipperID
and l.LineRef = t.LineRef
WHERE t.TranType = 'IN' AND t.InvtID <> ''
AND d.Rlsed = 1
AND (d.BatNbr <> '' OR d.BatSeq <> ''
OR d.CustID <> '' OR d.DocType <> ''
OR d.RefNbr <> ''))
/* Display results */
PRINT 'Number of initial records to be imported into the MSCRM'
PRINT '——————————————————————————————'
PRINT 'Customer (Accounts) : ' + CAST(@CUSTOMER AS VARCHAR(10))
PRINT 'SOAddress (Account or Contacts) : ' + CAST(@SOADDRESS AS VARCHAR(10))
PRINT ''
PRINT 'Inventory (Products) : ' + CAST(@INVENTORY AS VARCHAR(10))
PRINT 'INUnit (Units of Measure) : ' + CAST(@INUNIT AS VARCHAR(10))
PRINT ''
PRINT 'SOHeader (Quotes) : ' + CAST(@SOHEADER_Q AS VARCHAR(10))
PRINT 'SOHeader (Quotes) : ' + CAST(@SOHEADER_Q AS VARCHAR(10))
PRINT 'SOLine (Quote Detail) : ' + CAST(@SOLINE_Q AS VARCHAR(10))
PRINT 'SOLine (Quote Detail) : ' + CAST(@SOLINE_Q AS VARCHAR(10))
PRINT 'SOHeader (Sales Orders) : ' + CAST(@SOHEADER AS VARCHAR(10))
PRINT 'SOHeader (Sales Orders) : ' + CAST(@SOHEADER AS VARCHAR(10))
PRINT 'SOLine (Sales Order Detail) : ' + CAST(@SOLINE AS VARCHAR(10))
PRINT 'SOLine (Sales Order Detail) : ' + CAST(@SOLINE AS VARCHAR(10))
PRINT 'SOHeader (CM, DM, RMA) : ' + CAST(@SOHEADER_O AS VARCHAR(10))
PRINT 'SOHeader (CM, DM, RMA) : ' + CAST(@SOHEADER_O AS VARCHAR(10))
PRINT 'SOLine (CM, DM, RMA Detail) : ' + CAST(@SOLINE_O AS VARCHAR(10))
PRINT 'SOLine (CM, DM, RMA Detail) : ' + CAST(@SOLINE_O AS VARCHAR(10))
PRINT ''
PRINT 'ARDoc (OM - Invoices) : ' + CAST(@ARDOC_OM AS VARCHAR(10))
PRINT 'ARDoc (OM - Invoices) : ' + CAST(@ARDOC_OM AS VARCHAR(10))
PRINT 'ARTran (OM - Invoice Detail) : ' + CAST(@ARTRAN_OM AS VARCHAR(10))
PRINT 'ARTran (OM - Invoice Detail) : ' + CAST(@ARTRAN_OM AS VARCHAR(10))
PRINT 'ARDoc (AR - Invoices) : ' + CAST(@ARDOC_AR AS VARCHAR(10))
PRINT 'ARDoc (AR - Invoices) : ' + CAST(@ARDOC_AR AS VARCHAR(10))
PRINT 'ARTran (AR - Invoice Detail) : ' + CAST(@ARTRAN_AR AS VARCHAR(10))
PRINT 'ARTran (AR - Invoice Detail) : ' + CAST(@ARTRAN_AR AS VARCHAR(10))



Comments