Microsoft Great Plains Integrations – Retail Management sample


Microsoft Great Plains Integrations – Retail Management sample

 by: Andrew Karasev

Microsoft Business Solutions is emerging as very attractive vendor for mid-size companies. The strength of its products is in their cross integration potential. This integration strategy will be the software development direction for this Microsoft subdivision. Meanwhile, as of right now – we have to recommend just to stake on it and deal with custom or in-house developed integration.

If you are developer who needs some sample code to start with – we are placing Accounts Receivable level integration code – it pulls info from Microsoft RMS and places it into work tables in Great Plains.

Be aware, that Microsoft Great Plains version 7.5 has out of the box integration with Microsoft RMS 1.2, but it is on GL and POP level only. You can’t do check book reconciliation, for example. Currently Microsoft is in decision on who will be coding the integration for Great Plains 8.0 and what the functionality should be. More likely – it will be Nodus Technologies with the integration on SOP and GL level – it will deploy Great Plains Dexterity and MS SQL Server stored procs.

And here is the code, you have to deal with RM10301 and distribution RM, also we recommend insert new customers into RM00101 and RM00102:

Sales Transaction Record

insert into RM10301

(

DOCTYPE,

RMDTYPAL,

RMDNUMWK,

DOCNUMBR,

DOCDESCR,

DOCDATE,

BACHNUMB,

BCHSOURC,

CUSTNMBR,

CUSTNAME,

ADRSCODE,

COSTAMNT,

SLSAMNT,

MISCAMNT,

FRTAMNT,

TAXAMNT,

DOCAMNT,

CASHAMNT,

CBKIDCSH,

CASHDATE,

DCNUMCSH,

CHEKAMNT,

CBKIDCHK,

CBKIDCRD,

CHEKNMBR,

CHEKDATE,

DCNUMCHK,

CRCRDAMT,

DCNUMCRD,

CRCRDNAM,

RCTNCCRD,

CRCARDDT,

TRDISAMT,

ACCTAMNT,

DISCDATE,

DUEDATE,

LSTEDTDT,

LSTUSRED,

GLPOSTDT,

PSTGSTUS,

CURNCYID,

TXENGCLD

)

select

DOCTYPE (case

when a.Total > 0 then 1

else 7

end),

RMDTYPAL (case

when a.Total > 0 then 1

else 8

end),

RMDNUMWK 'SMS' + replicate('0',

13 - datalength(convert(varchar(13), a.TransactionNumber))) +

convert(varchar(13), a.TransactionNumber) + convert(varchar(10), a.StoreID),

DOCNUMBR 'SMS' + replicate('0',

13 - datalength(convert(varchar(13), a.TransactionNumber))) +

convert(varchar(13), a.TransactionNumber) + convert(varchar(10), a.StoreID),

DOCDESCR left(a.ReferenceNumber, 29),

DOCDATE convert(varchar(10), a.[Time], 101),

BACHNUMB 'SMS'

+ replicate('0',

2 - datalength(convert(varchar(2), a.StoreID))) +

convert(varchar(2), a.StoreID)

+ replicate('0',

9 - datalength(convert(varchar(11), a.BatchNumber))) +

convert(varchar(11), a.BatchNumber),

BCHSOURC 'RMSales',

CUSTNMBR'CASH',

CUSTNAME 'CASH',

ADRSCODE 'PRIMARY',

COSTAMNT (case

when isnull((select round(sum(round(Cost Quantity,2)),2)

from LINKEDSERVER.HQ.dbo.TransactionEntry

where TransactionNumber a.TransactionNumber and

StoreID a.StoreID),0) > 0 and a.Total > 0 then

abs(isnull((select round(sum(round(Cost Quantity,2)),2)

from LINKEDSERVER.HQ.dbo.TransactionEntry

where TransactionNumber a.TransactionNumber and

StoreID a.StoreID),0))

when isnull((select round(sum(round(Cost Quantity,2)),2)

from LINKEDSERVER.HQ.dbo.TransactionEntry

where TransactionNumber a.TransactionNumber and

StoreID a.StoreID),0) 0 and

a.StoreID '1' and

not exists (select 1 from RM10301 c

where c.RMDNUMWK 'SMS' + replicate('0',

13 - datalength(convert(varchar(13), a.TransactionNumber))) +

convert(varchar(13), a.TransactionNumber) + convert(varchar(10), a.StoreID) and

c.RMDTYPAL (case

when a.Total > 0 then 1

else 8

end)) and

not exists (select 1 from RM00401 c

where c.DOCNUMBR 'SMS' + replicate('0',

13 - datalength(convert(varchar(13), a.TransactionNumber))) +

convert(varchar(13), a.TransactionNumber) + convert(varchar(10), a.StoreID) and

c.RMDTYPAL (case

when a.Total > 0 then 1

else 8

end))

and a.[Time] > '01/01/2004'

Happy integrating! if you want us to do the job or use our product - give us a call 1-866-528-0577! help@albaspectrum.com