iT邦幫忙

1

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

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

  • 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
meowwu iT邦新手 5 級 ‧ 2025-09-12 09:11:42 檢舉
可以用r.d2+ debug
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

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中嗎,謝謝

by2048 iT邦高手 1 級 ‧ 2025-09-11 14:18:46 檢舉

正常也能寫一個Action按扭,把程式放在按扭執行t940sub_y_upd
p_base_act裡能看到 原本預設的action按扭
再用r.d2+ 去執行設中斷點後再看結果

/u1/topprod/topcust/cxm/4gl 客製區
如是新程式放的位置都要檢查一遍 p_zz 也要看程式模組代碼對不對CXM

TIM iT邦新手 5 級 ‧ 2025-09-11 14:57:39 檢舉

您好,但是按鈕r.d2+的部分應該是只能檢查ERP到EF段,我要怎麼檢查EF到ERP中的資料呢?目前程式都有檢查過都有正確放在該在的位置,所以我不用將程式放在nwsprd/tiptop中嗎?因為我現在確定如果只有放在/u1/topprod/topcust/cxm/4gl時,EF並沒有回傳值導致沒有執行efconfirm

by2048 iT邦高手 1 級 ‧ 2025-09-11 16:43:53 檢舉

topstd(標準區) toppord(正式區) toptest(測試區)
看你登入上面的那一個區塊,再去它的cxm程式看
另aws_efapp_getEFLogonID
那就查看看這應該都在tiptop/ aws目錄中有關這個程式寫什麼了
一般在/u1/out 都會留下TT EF之間的資料交換記錄用今天的日期看一下

TIM iT邦新手 5 級 ‧ 2025-09-11 17:29:38 檢舉

感謝大哥的鼎力相助,目前已經處理好了,相當感謝

0
做工仔人!
iT邦大師 1 級 ‧ 2025-09-11 16:57:15

1.請問樓主是EF.NET 還是EF GP ? 這二個產品在簽核完成後的回傳方式設定位置不同.
2.在TIPTOP系統上有一支程式也要設定.(但是程式名稱我忘了,現在也沒有TIPTOP系統可以看)
如果有合約,可以問客服?
也可以私訊我,要有一個工具讓我連線過去。

要先設定好上述二個東西,才會進到程式debug問題.

TIM iT邦新手 5 級 ‧ 2025-09-11 17:30:00 檢舉

感謝大哥您的回答,目前已經處理好了,相當感謝

我要發表回答

立即登入回答