Auto Generate Customer ID

Thank you Chris! I'll check that out... and I imagine a BPM like that will probably upgrade better than a script customization would.

I also messed around with the V8 customization and found out how to adapt it to E9.04.507A. There is only one tiny change to the underlying code (replace the ">" with ">"), but the XML install does not work.

Ernie Lowell
Diba Industries

--- In vantage@yahoogroups.com, Christopher Heins <cheins@...> wrote:
>
> We do it like this in e9.05.604 ... this is a post-processing directive on the Customer / GetNewCustomer BO method ... there is no "condition" ...
>
>
> /* calculate Customer Number
> 04.15.2011 CAH & KJ: Implemented this to use the UDCodes table instead of the
> company as the source of the last customer number.
> */
> define variable BPMNextCustomerNo as decimal no-undo.
> define variable BPMNextCustomerID as character no-undo.
> define var BPMCustIDExists as logical init yes no-undo.
>
> for each ttcustomer where ttcustomer.RowMod='A' no-lock:
>
> find udcodes where udcodes.Company = cur-comp
> and udcodes.CodeTypeID = "counters"
> and udcodes.CodeID = "CustID" no-lock no-error.
>
> if not available(udcodes) then do:
> {lib/PublishInfoMsg.i &infomsg="'There is no CustID record under User Code Counters - Autonumbering cannot be done'" 0}.
> return "".
> end.
>
> BPMNextCustomerNo = udCodes.number01.
>
> do while BPMCustIDExists:
> /*the last customer number used is stored in UDCodes.number01.
> Add 1, verify customer slot it open, then save */
> BPMNextCustomerNo = BPMNextCustomerNo + 1.
> BPMNextCustomerID = string(BPMNextCustomerno).
>
> find first customer where customer.Company = cur-comp
> and customer.CustID = BPMNextCustomerID no-lock no-error.
>
> BPMCustIDExists = available(customer).
> end.
>
> ttcustomer.CustID = BPMNextCustomerID.
>
> Run lib\UpdateTableBuffer.p(input BUFFER UDCodes:Handle,'number01',BPMNextCustomerNo).
> end.
>
>
>
> Cheers!
>
> Christopher Heins
> Sr. Progress Programmer/Analyst
> [cid:image001.png@...]
> Desk# 973-560-5370
> Cell# 908-256-3662
> Skype: cheins.nj
> cheins@...<mailto:cheins@...>
>
>
> ________________________________
> NOT INTENDED AS A SUBSTITUTE FOR A WRITING
> NOTHING IN THIS E-MAIL, IN ANY E-MAIL THREAD OF WHICH IT MAY BE A PART, OR IN ANY ATTACHMENTS THERETO, SHALL CONSTITUTE A BINDING CONTRACT, OR ANY CONTRACTUAL OBLIGATION BY PNY, OR ANY INTENT TO ENTER INTO ANY BINDING OBLIGATIONS, NOTWITHSTANDING ANY ENACTMENT OF THE UNIFORM ELECTRONIC TRANSACTIONS ACT, THE FEDERAL E-SIGN ACT, OR ANY OTHER STATE OR FEDERAL LAW OF SIMILAR SUBSTANCE OR EFFECT. THIS EMAIL MESSAGE, ITS CONTENTS AND ATTACHMENTS ARE NOT INTENDED TO REPRESENT AN OFFER OR ACCEPTANCE OF AN OFFER TO ENTER INTO A CONTRACT. NOTHING IN THIS E-MAIL, IN ANY E-MAIL THREAD OF WHICH IT MAY BE A PART, OR IN ANY ATTACHMENTS THERETO SHALL ALTER THIS DISCLAIMER.
>
> This e-mail message from PNY Technologies, Inc. is for the sole use of the intended recipient(s) and may contain confidential and privileged information. Any unauthorized review, use, disclosure or distribution is prohibited. If you are not the intended recipient, please contact the sender by reply e-mail and destroy all copies of the original message.
>
>
> [Non-text portions of this message have been removed]
>
Perusing the forum and files section I found the Vantage 8 Customization (thanks, Brian!) for auto-generating Customer ID numbers for new customers. Has anyone updated that for use with E9? I tried it as it is but the plumbing has changed too much for it to work straight up.

Ernie Lowell
Diba Industries
We do it like this in e9.05.604 ... this is a post-processing directive on the Customer / GetNewCustomer BO method ... there is no "condition" ...


/* calculate Customer Number
04.15.2011 CAH & KJ: Implemented this to use the UDCodes table instead of the
company as the source of the last customer number.
*/
define variable BPMNextCustomerNo as decimal no-undo.
define variable BPMNextCustomerID as character no-undo.
define var BPMCustIDExists as logical init yes no-undo.

for each ttcustomer where ttcustomer.RowMod='A' no-lock:

find udcodes where udcodes.Company = cur-comp
and udcodes.CodeTypeID = "counters"
and udcodes.CodeID = "CustID" no-lock no-error.

if not available(udcodes) then do:
{lib/PublishInfoMsg.i &infomsg="'There is no CustID record under User Code Counters - Autonumbering cannot be done'" 0}.
return "".
end.

BPMNextCustomerNo = udCodes.number01.

do while BPMCustIDExists:
/*the last customer number used is stored in UDCodes.number01.
Add 1, verify customer slot it open, then save */
BPMNextCustomerNo = BPMNextCustomerNo + 1.
BPMNextCustomerID = string(BPMNextCustomerno).

find first customer where customer.Company = cur-comp
and customer.CustID = BPMNextCustomerID no-lock no-error.

BPMCustIDExists = available(customer).
end.

ttcustomer.CustID = BPMNextCustomerID.

Run lib\UpdateTableBuffer.p(input BUFFER UDCodes:Handle,'number01',BPMNextCustomerNo).
end.



Cheers!

Christopher Heins
Sr. Progress Programmer/Analyst
[cid:image001.png@01CC7CFE.01C496A0]
Desk# 973-560-5370
Cell# 908-256-3662
Skype: cheins.nj
cheins@...<mailto:cheins@...>


________________________________
NOT INTENDED AS A SUBSTITUTE FOR A WRITING
NOTHING IN THIS E-MAIL, IN ANY E-MAIL THREAD OF WHICH IT MAY BE A PART, OR IN ANY ATTACHMENTS THERETO, SHALL CONSTITUTE A BINDING CONTRACT, OR ANY CONTRACTUAL OBLIGATION BY PNY, OR ANY INTENT TO ENTER INTO ANY BINDING OBLIGATIONS, NOTWITHSTANDING ANY ENACTMENT OF THE UNIFORM ELECTRONIC TRANSACTIONS ACT, THE FEDERAL E-SIGN ACT, OR ANY OTHER STATE OR FEDERAL LAW OF SIMILAR SUBSTANCE OR EFFECT. THIS EMAIL MESSAGE, ITS CONTENTS AND ATTACHMENTS ARE NOT INTENDED TO REPRESENT AN OFFER OR ACCEPTANCE OF AN OFFER TO ENTER INTO A CONTRACT. NOTHING IN THIS E-MAIL, IN ANY E-MAIL THREAD OF WHICH IT MAY BE A PART, OR IN ANY ATTACHMENTS THERETO SHALL ALTER THIS DISCLAIMER.

This e-mail message from PNY Technologies, Inc. is for the sole use of the intended recipient(s) and may contain confidential and privileged information. Any unauthorized review, use, disclosure or distribution is prohibited. If you are not the intended recipient, please contact the sender by reply e-mail and destroy all copies of the original message.


[Non-text portions of this message have been removed]