今天,我想實現一個東西,我想透過Oracle sequecne 功能,實現User想要的sequence給號。我的需求是每年度要重新給號,實現這個功能,我們可以用DB sequence,設定recycle,但我想做的是透過設定,每個不同的帳本,可以依照自己想要的編碼方式取得想要的號碼,就像GL的sequence一樣。

不囉嗦,就來看我怎麼實現囉…..

Oracle ERP version : 11.5.10.2

首先我要讓我的客製Table在Oracle Document Category可以選擇的到,於是我必須先將我的Table 註冊到Oracle Database Table中....請先參考<How to register table into Oracle ERP applicaiton> 文章。

 

接著,我們就去註冊我的專屬的Category Code吧

1. Create new document categories

  • Responsibility : System Administrator (或者是其他模組的super user 權限)
  • Navigator : Application > Document > Categories

Doc_Categories

2. Create new document sequence

Doc_Sequence

3. Assign sequence to new category

Seq_Assignment_tab1

Seq_Assignment_tab2

如何取得下一個Sequence 號碼呢? 使用標準的library

FND_SEQNUM.GET_NEXT_SEQUENCE( APPID       => 20003 -- application_id
                             , CAT_CODE     => 'XXDII_INVOICE' – category_code
                             , SOBID       => 7  -- Set of book id
                             , MET_CODE     => 'A'  -- Automatically / Manual
                             , TRX_DATE     => SYSDATE – Transaction Date
                             , DBSEQNM      => DOCSEQ_VAL
                             , DBSEQID    => DOCSEQ_ID );

 

好處:不需要依照不同Site的編碼需求修改自己客製程式,依照需求設定。

文章標籤
創作者介紹
創作者 SomebabyTina 的頭像
SomebabyTina

Oracle ERP學習經驗分享

SomebabyTina 發表在 痞客邦 留言(3) 人氣()


留言列表 (3)

發表留言
  • zhxiang.xie
  • 哈, 這個方法倒沒有用過
    之前用過的方式大約有兩種
    1. 是建客製表格, 記錄目前已用的最大號碼, 取用時(注意session與lock)加一號, 特定期末把他設為1 (或新增一組生效日在新期間期初的.. 從1開始)..

    2. 用 DB Sequence, 那麼不太需要管空 session和 lock... DB會處理好... 唯一問題是下一期要從1開始的問題.... 這邊需要點小技巧, sequence設定為 cycle的, 在期末時把它指定取到最大號.. 接下來下一期期初再取用, 就會從1開始..
  • zihjieli.id
  • HI~您好:

    我有 Oracle ERP 的問題想請教妳
    不知是否方便留個信箱呢?

    謝謝
  • What’s issue you have?

    SomebabyTina 於 2018/04/19 00:00 回覆

  • 悄悄話