iT邦幫忙

0

Tiptop自製程式要如何在EF簽核完畢後自動確認

TIM 2025-09-11 10:21:15164 瀏覽
  • 分享至 

  • xImage

此段為我所寫的自動確認程式段, tc_occb04為確認碼欄位,但我測試簽核完成後始終無法自動確認,也已經將axmi010的自動確認勾選,程式放在topprod:/u1/topprod/topcust/cxm/4gl中,想請問大哥大姊要如何處理,另外想知道這種情況要如何去跑程式段除錯,謝謝各位大神!

FUNCTION t940sub_y1(l_tc_occb)
 DEFINE l_tc_occb   RECORD LIKE tc_occb_file.*
 DEFINE l_msg   LIKE type_file.chr1000 #No.FUN-680137 VARCHAR(100)
 DEFINE l_azf08 LIKE azf_file.azf08    #CHI-E60035
 DEFINE l_zx01  LIKE zx_file.zx01      #FUN-E40020 add
 DEFINE l_cnt   LIKE type_file.num5    #FUN-E40020 add

   IF l_tc_occb.tc_occb04 = 'N' AND l_tc_occb.tc_occb05 = '0'  THEN
      LET l_tc_occb.tc_occb05 = '1'     #已核淮
   END IF

  #FUN-E40020 add---str---
  #若為EF整合自動確認,單據確認人員應為關卡最後一關簽核人員
   IF g_action_choice = "efconfirm" THEN
      CALL aws_efapp_getEFLogonID() RETURNING l_zx01

      SELECT count(*) INTO l_cnt
        FROM zx_file
       WHERE zxacti = 'Y'
         AND zx01 = l_zx01
   END IF
  #FUN-E40020 add---end---

   UPDATE tc_occb_file SET tc_occb04='Y'
    WHERE tc_occb01 = l_tc_occb.tc_occb01
   IF STATUS OR SQLCA.sqlerrd[3] = 0 THEN
      CALL cl_err3("upd","tc_occb_file",l_tc_occb.tc_occb01,"",SQLCA.sqlcode,"","upd tc_occbconf",1)  #No.FUN-650108
      LET g_success = 'N'
      RETURN
   END IF
   
END FUNCTION
恩恩 iT邦新手 5 級 ‧ 2025-09-11 10:37:57 檢舉
EF 是鼎新的產品嗎? 若是通常會有回寫簽核狀況的服務 會更新TT的wdsl,讓單據呈現確認
TIM iT邦新手 5 級 ‧ 2025-09-11 10:51:55 檢舉
您好,是鼎新的產品沒錯,請問這是要在哪裡更新TT的wdsl呢,謝謝
恩恩 iT邦新手 5 級 ‧ 2025-09-11 11:47:03 檢舉
我之前有發過文章,也許有幫助到你
但目前BPM的版本和畫面 已經和之前不一樣囉

https://ithelp.ithome.com.tw/articles/10191199
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

0
by2048
iT邦高手 1 級 ‧ 2025-09-11 13:29:07

從程式段看
FUNCTION t940sub_y1(l_tc_occb)
這段程式什麼時候被呼叫,被叫到才有可能執行
CALL aws_efapp_getEFLogonID() RETURNING l_zx01
這段看最後一人是誰簽
l_cnt>0 有人簽

但看流程下來跟EF有沒有簽,在update程式段都沒有檢查

axmi010的自動確認勾選 這應該是指打完單,TT自動確認的選項跟簽核應無關

先看看有沒有aws_efcfg or aws_efcfg2的程式,如有表示有整合段程式

TIM iT邦新手 5 級 ‧ 2025-09-11 13:47:37 檢舉
   IF NOT cl_null(g_argv1) THEN
      CASE g_argv2
         WHEN "query"
            LET g_action_choice = "query"
            IF cl_chk_act_auth() THEN
               CALL t940_q()
            END IF
         WHEN "insert"
            LET g_action_choice = "insert"
            IF cl_chk_act_auth() THEN
               CALL t940_a()
               LET g_data_keyvalue = g_tc_occb.tc_occb01   
            END IF
         WHEN "efconfirm"
            LET g_action_choice = "efconfirm"        
            CALL t940_q()
            CALL t940sub_y_chk(g_tc_occb.tc_occb01)          #CALL 原確認的 check 段
            IF g_success = "Y" THEN
               CALL t940sub_y_upd(g_tc_occb.tc_occb01, g_action_choice)    #CALL 原確認的 update 段
            END IF
            EXIT PROGRAM
         OTHERWISE
            CALL t940_q()
 
      END CASE
   END IF

這是主要程式段在呼叫efconfirm使用,g_argv1為單號,g_argv2為功能,我在想是不是根本沒回傳到g_argv2,但是我不懂要如何除錯EF到ERP的段落,但是簽核過後是能夠正確將單據改為已簽核,目前我是將程式在topprod/tiptop中,請問是要移至nwsprd/tiptop中嗎,謝謝

我要發表回答

立即登入回答