1. 程式人生 > >X++:自定義Number sequence&應用

X++:自定義Number sequence&應用

通過本教程你可以很簡單地在Dynamics 365裡面自定義一個Number sequence(派號碼),並能使用它獲取一個新的number.

  1. 先確認在哪個版塊中應用此Number sequence, 我們選擇了Production control,  需要在Production control->Setup->Production control parameters的Number sequences裡面加上若干個Number sequence. 那麼Production control的number sequence的設定涉及到兩個class要修改:
    1. NumberSeqModuleProduction
    2. ProdParameters
  2. 基於NumberSeqModuleProduction新建一個擴充套件AEL_NumberSeqModuleProd_Extension:
[ExtensionOf(classStr(NumberSeqModuleProduction))]
final class AEL_NumberSeqModuleProd_Extension
{
    protected void loadModule()
    {
        next loadModule();
        
        this.AEL_AddDataType(extendedtypenum(AEL_ProdRNoteId_IR),  8, literalstr("@AEL580"), literalstr("@AEL579"));
        this.AEL_AddDataType(extendedtypenum(AEL_ProdRNoteId_LR),  9, literalstr("@AEL581"), literalstr("@AEL582"));
        this.AEL_AddDataType(extendedtypenum(AEL_ProdRNoteId_PS), 10, literalstr("@AEL583"), literalstr("@AEL584"));
        this.AEL_AddDataType(extendedtypenum(AEL_ProdRNoteId_IS), 11, literalstr("@AEL585"), literalstr("@AEL586"));
        this.AEL_AddDataType(extendedtypenum(AEL_ProdRNoteId_LO), 12, literalstr("@AEL587"), literalstr("@AEL588"));
        this.AEL_AddDataType(extendedtypenum(AEL_ProdRNoteId_ER), 13, literalstr("@AEL589"), literalstr("@AEL590"));
        this.AEL_AddDataType(extendedtypenum(AEL_ProdRNoteId_RS), 14, literalstr("@AEL591"), literalstr("@AEL592"));
    }

    private void AEL_AddDataType(
        ExtendedTypeId _datatypeId,
        Integer _sortField,
        NumberSequenceRefLabel _referenceLabel = '',
        NumberSequenceRefHelp _referenceHelp = ''
    )
    {
        NumberSeqDatatype datatype = NumberSeqDatatype::construct();
        datatype.parmDataTypeId(_datatypeId);
        if (_referenceLabel)
        {
            datatype.parmReferenceLabel(_referenceLabel);
        }
        if (_referenceHelp)
        {
            datatype.parmReferenceHelp(_referenceHelp);
        }
        datatype.parmWizardIsContinuous(false);
        datatype.parmWizardIsManual(NoYes::No);
        datatype.parmWizardfetchAheadQty(10);
        datatype.parmWizardIsChangeDownAllowed(NoYes::No);
        datatype.parmWizardIsChangeUpAllowed(NoYes::No);
        datatype.parmSortField(_sortField);
        datatype.addParameterType(NumberSeqParameterType::DataArea, true, false);
        this.create(datatype);
    }

}

AEL_ProdRNoteId_IR…這些是edtString型別

3.基於ProdParameters新建擴充套件AEL_ProdParameters_Extension:

[ExtensionOf(tableStr(ProdParameters))]
final class AEL_ProdParameters_Extension
{
    public static NumberSequenceReference AEL_NumRefRepNoteId()
    {
        return NumberSeqReference::findReference(extendedTypeNum(AEL_ProdRepNoteId));
    }

    public static NumberSequenceReference AEL_NumRefERRepNoteId()
    {
        return NumberSeqReference::findReference(extendedTypeNum(AEL_ProdRNoteId_ER));
    }

    public static NumberSequenceReference AEL_NumRefIRRepNoteId()
    {
        return NumberSeqReference::findReference(extendedTypeNum(AEL_ProdRNoteId_IR));
    }

    public static NumberSequenceReference AEL_NumRefISRepNoteId()
    {
        return NumberSeqReference::findReference(extendedTypeNum(AEL_ProdRNoteId_IS));
    }

    public static NumberSequenceReference AEL_NumRefLORepNoteId()
    {
        return NumberSeqReference::findReference(extendedTypeNum(AEL_ProdRNoteId_LO));
    }

    public static NumberSequenceReference AEL_NumRefLRRepNoteId()
    {
        return NumberSeqReference::findReference(extendedTypeNum(AEL_ProdRNoteId_LR));
    }

    public static NumberSequenceReference AEL_NumRefPSRepNoteId()
    {
        return NumberSeqReference::findReference(extendedTypeNum(AEL_ProdRNoteId_PS));
    }

    public static NumberSequenceReference AEL_NumRefRSRepNoteId()
    {
        return NumberSeqReference::findReference(extendedTypeNum(AEL_ProdRNoteId_RS));
    }

}

4.完畢後,在瀏覽器上執行

5.手動加入Number sequence專案:  進入Organization administration->Number sequences->Number sequences, New Number sequence:

6.再開啟Production control->Setup->Production control parameters的Number sequences引用這個新建的RNOTE_IR:

7.如何應用: 在table新建的時候,從number sequence中取得新的id:

修改AEL_ReplacementNote_master table加上insert method:

this.AEL_rl_no = NumberSeq::newGetNum(ProdParameters::AEL_NumRefIRRepNoteId()).num();

相關推薦

X++:定義Number sequence&應用

通過本教程你可以很簡單地在Dynamics 365裡面自定義一個Number sequence(派號碼),並能使用它獲取一個新的number. 先確認在哪個版塊中應用此Number sequence, 我們選擇了Production control,  需要在Produ

X++:定義Number sequence&應用

通過本教程你可以很簡單地在Dynamics 365裡面自定義一個Number sequence(派號碼),並能使用它獲取一個新的number.   先確認在哪個版塊中應用此Number sequence, 我們選擇了Production control,  需要

Cordova6.x定義插件之Andorid

and mage cnblogs 目錄 rdo feature detail .cn sse 1.繼承了CordovaPlugin的Java Class 需要重寫execute方法,如下: 2.在res/xml/config.xml中關聯上述java class 3

SpringMvc4.x---定義HttpMessageConverter

bsp 定義 app nbsp res convert esp 大量 response 消息轉換器HttpMessageConverter是用來處理request和response裏面的數據的。Spring為我們內置了大量的HttpMessageConverter,例如,M

定義特性與應用

TP stat target 一個 計算 如果 得到 for https   自定義特性允許把自定義元數據與程序元素關聯起來。在.NET Framework框架中,微軟定義了許多特性提供給開發人員使用,如StructLayout特性中的信息在內存中布置結構。這些已有的特性得

mysql數據庫對字段定義排序的應用

cat mit lan 價格 pid life sans 函數 content 之前做項目 有個需求是 二手租房按照 房租價格 從低到高排序,面議的價格要在最後顯示出來。 因為數據庫中 面議 的價格(price)是(-1,0) 如果按照從低到高,面議的價格就會顯示在最

025.定義View中應用貝塞爾曲線

之前一直看QQ的未讀訊息拖拽消失設計得很好,我一直覺得那個設計很好,他們的UI是真心強,於是,我也一直想寫個一樣的玩意來玩玩。最近剛好在複習View相關的知識,就拿這個來練手,下面先來看實現的效果圖: 這是我希望實現的效果,這個效果的實現在第二個圖能看出一點端倪。這裡面的曲線繪製,

SpringBoot2.x定義全域性異常處理器和配置

前言: 在某些業務場景,我們會在系統中針對某些業務丟擲一個統一的自定義異常,然而springBoot為了方便我們能夠對這些異常進行統一處理給我們提供了全域性異常處理器的功能,其實也就是延用了sprin

vue-cli 3.x 定義外掛併發布到 npm

乾貨轉載——https://www.cnblogs.com/wisewrong/archive/2018/12/28/10186611.html 全是知識點吶 趕緊記下來啊 一、調整專案結構 首先用 vue-cli 建立一個 default 專案 // 順便安利一篇文章《Vue 爬坑之路(十二)——

AngularJs1.x定義指令獨立作用域的函式傳入引數

在定義指令的scope屬性如果設定成了{},那就成為了一個獨立作用域,如果要傳入一個方法,使用&,但是這裡的傳參有點不一樣。先看下官網解釋: & or &attr - p

PyQt定義訊號的應用

PyQt中不能線上程中進行UI操作,必須在主執行緒中才能操作UI。但實際應用中,會涉及到需要線上程中操作UI的場景,這時,就可以通過自定義訊號的方法來解決。除此之外,當PyQt提供的預設訊號無法滿足需求時,也可以通過自定義訊號的方式來解決。 自定義訊號的應用步驟如下: 定義

SpringBoot2.X定義攔截器實戰及新舊配置對比(核心知識)

簡介: 講解攔截器使用,Spingboot2.x新版本配置攔截攔截器和舊版本SpringBoot配置攔截器區別講解 1、@Configuration   繼承WebMvcConfigurationAdapter(SpringBoot2.X之前舊版本)   SpringBoot2.X 新版本配置攔截器

spring boot Swagger2(version=2.7.0) 註解@ApiImplicitParam的屬性dataType值為”定義泛型“應用

註解: @ApiImplicitParams @ApiImplicitParam            name="需註解的API輸入引數",           value="接收引數的意義描述",     paramType="引數存放位置",       

EXCEL 中定義函式的應用(關於 XOR 在 EXCEL 中的用法 及 文字型數字求和)

EXCEL 中,能否同調用內建函式一樣在工作表中呼叫自已製作的自定義函式,出現對話方塊.同時也能做到像內建函式對話方塊裡的說明?答案是肯定的,下面舉例說明:題目: ①對文字型一系列數字進行求和(SUM()返回0)              ②對數值型的一系列數字異或操作(EX

angularjs 1.x定義指令之控制器與指令間的通訊

一、在指令中呼叫控制器裡定義的方法 //html <div ng-controller="MyCtrl"> <loader howToLoad="loadData

Spark 2.x 定義累加器AccumulatorV2的使用

廢除 Spark2.x之後,之前的的accumulator被廢除,用AccumulatorV2代替; 更新增加 建立並註冊一個long accumulator, 從“0”開始,用“add”累加 def longAccumulator(name

cocos2d-x 定義ttf字型跨平臺使用方法

感謝點評與關注,歡迎轉載與分享。勤奮努力,持之以恆! 操作環境為 Mac OS X 10.9  1、重新命名ttf字型檔名稱,以實際字型名稱來命名。檢視實際字型名稱雙擊ttf檔案安裝字型,在字型冊應用程式中就能看到,如圖1: 命名好的三個ttf字型檔案如圖

Elasticsearch 5.X 定義欄位的Mapping

Mapping 定義 前面有一個篇簡單的關於mapping的部落格,當時是基於2.4 版本。 elastic技術棧在最近很活躍,目前版本已經更新至5.x。5.x有了比較大的變化。2.4 版本的定義在5.x上大部分已經失去了意義。(比如:5.x已經不再支援str

ratelimit+aop定義註解實現應用限流

1、基於springboot專案pom.xml新增如下依賴: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>sprin

8.定義函式綜合應用示例

來源:網易雲課堂《精通MySQL儲存過程、函式和觸發器》課程 講師:huangxifeng607(黃錫峰) 筆記: (1)自定義函式示例01 1.需求:輸入使用者ID,獲得accountid, uid, uname組合的UUID值,在全區遊戲中作為使用者的唯一