![]() |
#1 |
Участник
|
Dynamics AX Sustained Engineering: Issue with check numbers when exceeding the upper limit of a 32-bit integer
Источник: http://blogs.technet.com/b/dynamicsa...t-integer.aspx
============== Problem: When attempting to process a check which exceeds the upper limit of a 32-bit integer the following message is displayed: “The value is not within the range. Acceptable values are within the range 0 – 2147483647.” Resolution: To resolve this issue the following changes can be made. 1. Create a new 64-bit Extended Data Type to be used for checks a. From the AOT navigate to \Data Dictionary\Extended Data Types b. Right-click and select New -> Int64 i. Name = BankChequeStartNumInt64 ii. Label = @SYS23068 iii. HelpText = @SYS23068 iv. FormHelp = BankChequeLookup v. DisplayLength = 10 vi. ConfigurationKey = BankCheque c. Save the Extended Data Type. 2. Update NumberSeq Class to handle the new 64-bit integer a. \Classes\NumberSeq\numInsertFormat From: X++: public static client server Num numInsertFormat(Integer num, NumberSequenceFormat format ) { ; if (format == '') return int2str(num); if (!strfind(format, #SymbolLetters,1,999)) return NumberSeq::numInsertFormatInternal(int2str(num), format); return NumberSeq::numInsertFormatLetters(num, format); } X++: public static client server Num numInsertFormat(Int64 num, NumberSequenceFormat format ) { ; if (format == '') return int642str(num); if (!strfind(format, #SymbolLetters,1,999)) return NumberSeq::numInsertFormatInternal(int642str(num), format); return NumberSeq::numInsertFormatLetters(num, format); } a. \Classes\BankChequeCreate\dialog From: X++: public Object dialog() { DialogRunbase dialog = super(); dialogFromNegInstNum = dialog.addFieldValue(typeid(BankChequeStartNum), fromNegInstNum, "@SYS4083"); dialogFromNegInstNum.lookupButton(0); ... X++: public Object dialog() { DialogRunbase dialog = super(); dialogFromNegInstNum = dialog.addFieldValue(typeid(BankChequeStartNumInt64), fromNegInstNum, "@SYS4083"); dialogFromNegInstNum.lookupButton(0); ... a. \Classes\BankNegInstCreate\classDeclaration From: X++: abstract public class BankNegInstCreate extends RunBase { BankAccountTable bankAccountTable; NumberSequenceFormat format; CompanyBankAccountId accountID; BankNegInstStartNum fromNegInstNum; BankNegInstQty numOfNegInst; DialogField dialogAccountId; DialogField dialogFromNegInstNum; DialogField dialogNumOfNegInst; #DEFINE.CurrentVersion(1) ... X++: abstract public class BankNegInstCreate extends RunBase { BankAccountTable bankAccountTable; NumberSequenceFormat format; CompanyBankAccountId accountID; BankChequeStartNumInt64 fromNegInstNum; BankNegInstQty numOfNegInst; DialogField dialogAccountId; DialogField dialogFromNegInstNum; DialogField dialogNumOfNegInst; #DEFINE.CurrentVersion(2) ... From: X++: public BankNegInstStartNum parmFromNegInstNum(BankNegInstStartNum _fromNegInstNum = fromNegInstNum)
{ X++: public BankChequeStartNumInt64 parmFromNegInstNum(BankChequeStartNumInt64 _fromNegInstNum = fromNegInstNum)
{ From: X++: public void run() { #OCCRetryCount BankNegInstStartNum toNegInstNum; BankNegInstNum negInstNum; ; X++: public void run() { #OCCRetryCount BankChequeStartNumInt 64 toNegInstNum; BankNegInstNum negInstNum; ; Источник: http://blogs.technet.com/b/dynamicsa...t-integer.aspx
__________________
Расскажите о новых и интересных блогах по Microsoft Dynamics, напишите личное сообщение администратору. |
|
![]() |
#2 |
Мрачный тип
|
Кстати, да , давно вопрос возникнуть должен был, и не только у пользователей и партеров - система уже с 4-ки понимает int64, а в NumberSequence до сих пор каменный век с 32-битным счетчиком.
__________________
Мы летаем, кружимся, нагоняем ужасы ... |
|
|
|