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    'SOLine (Quote Detail)              : ' + CAST(@SOLINE_Q AS VARCHAR(10))
PRINT 'SOHeader (Sales Orders)             : ' + CAST(@SOHEADER 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    'SOLine (CM, DM, RMA Detail)         : ' + CAST(@SOLINE_O AS VARCHAR(10))
PRINT ''
PRINT 'ARDoc (OM - Invoices)               : ' + CAST(@ARDOC_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    'ARTran (AR - Invoice Detail)       : ' + CAST(@ARTRAN_AR AS VARCHAR(10))

 
Trackbacks
  • No trackbacks exist for this entry.
Comments
  • No comments exist for this entry.
Leave a comment

 Enter the above security code (required)

 Name (required)

 Email (will not be published) (required)

Your comment is 0 characters limited to 3000 characters.