SD信贷相关问题

刷新信贷SAP提供的标准的程序RVKRED77

该程序的主要逻辑是:
计算当前信贷存入S066/S067表,每次计算之前都会清空这个两个表,VA02修改销售订单也会刷新信贷但这个建立S066/S067已计算好的信贷基础上,不会修改S066/S067数据

如上如有问题请留言

如下代码实现JOB,但是要配合已设定的JOB使用
在这里插入图片描述
在这里插入图片描述

REPORT zjob_check_rvkred77.


  • 事务代码: ZJOB_CHECK_RVKRED77
  • 程序名称:
  • 程序目的: 信贷程序RVKRED77 JOB检查,如果关闭就重新开启
  • 程序类型: ABAP/4 程序 ,实时JOB检查
  • 应用类型: 信贷程序RVKRED77 JOB检查
  • 开发人员:
    *(修改日志)--------------------------------------------------------
  • 日志号 修改人 修改时间 修改说明 传输号码


TABLES vbak.

DATA:g_number TYPE tbtcjob-jobcount,
g_name TYPE tbtcjob-jobname,
g_print_parameters TYPE pri_params VALUE ‘LP01’.

"BDC数据
DATA:bdcdata LIKE bdcdata OCCURS 0 WITH HEADER LINE.
DATA:messtab LIKE bdcmsgcoll OCCURS 0 WITH HEADER LINE.
DATA:bdcmode TYPE c VALUE ‘N’,
bdcupdate TYPE c VALUE ‘L’.
DATA:gv_mes TYPE string,
l_number TYPE sy-msgno,
l_msgv1 TYPE sy-msgv1,
l_msgv2 TYPE sy-msgv2,
l_msgv3 TYPE sy-msgv3,
l_msgv4 TYPE sy-msgv4.

SELECT-OPTIONS:s_kkber FOR vbak-kkber NO-DISPLAY.

--------------------------------------------------------------------
*INITIALIZATION
--------------------------------------------------------------------
INITIALIZATION.

"初始化七个公司贷方控制范围
s_kkber-sign = ‘I’. s_kkber-option = ‘EQ’. s_kkber-low = ‘1001’. APPEND s_kkber.
s_kkber-sign = ‘I’. s_kkber-option = ‘EQ’. s_kkber-low = ‘1101’. APPEND s_kkber.
s_kkber-sign = ‘I’. s_kkber-option = ‘EQ’. s_kkber-low = ‘1201’. APPEND s_kkber.
s_kkber-sign = ‘I’. s_kkber-option = ‘EQ’. s_kkber-low = ‘1301’. APPEND s_kkber.
s_kkber-sign = ‘I’. s_kkber-option = ‘EQ’. s_kkber-low = ‘1501’. APPEND s_kkber.
s_kkber-sign = ‘I’. s_kkber-option = ‘EQ’. s_kkber-low = ‘2101’. APPEND s_kkber.
s_kkber-sign = ‘I’. s_kkber-option = ‘EQ’. s_kkber-low = ‘2301’. APPEND s_kkber.

--------------------------------------------------------------------
*START-OF-SELECTION
--------------------------------------------------------------------
START-OF-SELECTION.

DO.

"检查JOB是否执行
SELECT SINGLE *
  INTO @DATA(ls_tbtco)
  FROM tbtco
  WHERE jobname = '信贷处理JOB-7个公司-RVKRED77'
    AND sdlstrtdt = @sy-datum
    AND ( status = 'R' OR status = 'F').
IF sy-subrc <> 0.

  "SM12  BDC解锁   likp  lips  vbak  vbap
  PERFORM frm_sm12_bdc USING 'LIKP'.
  PERFORM frm_sm12_bdc USING 'LIPS'.
  PERFORM frm_sm12_bdc USING 'VBAK'.
  PERFORM frm_sm12_bdc USING 'VBAP'.
  PERFORM frm_sm12_bdc USING 'VBRK'.

  CLEAR g_number.
  "创建已计划状态的JOB
  CALL FUNCTION 'JOB_OPEN'
    EXPORTING
      jobname          = '信贷处理JOB-7个公司-RVKRED77'
    IMPORTING
      jobcount         = g_number
    EXCEPTIONS
      cant_create_job  = 1
      invalid_job_data = 2
      jobname_missing  = 3
      OTHERS           = 4.
  IF sy-subrc = 0.

    "JOB内容
    SUBMIT rvkred77
    WITH kkber     IN s_kkber "信贷控制范围
    WITH protb     = 'X'  "日志?(X)
    TO SAP-SPOOL "打印机参数设置
    SPOOL PARAMETERS g_print_parameters "打印机格式
    WITHOUT SPOOL DYNPRO
    USER syst-uname
    VIA JOB '信贷处理JOB-7个公司-RVKRED77' NUMBER g_number
    AND RETURN.

    IF sy-subrc = 0.
      "释放已计划的JOB,JOB状态为活动
      CALL FUNCTION 'JOB_CLOSE'
        EXPORTING
          jobcount             = g_number
          jobname              = '信贷处理JOB-7个公司-RVKRED77'
          strtimmed            = 'X'
        EXCEPTIONS
          cant_start_immediate = 1
          invalid_startdate    = 2
          jobname_missing      = 3
          job_close_failed     = 4
          job_nosteps          = 5
          job_notex            = 6
          lock_failed          = 7
          OTHERS               = 8.
      IF sy-subrc <> 0.
        MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
        WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      ENDIF.
    ENDIF.

  ENDIF.

ENDIF.

IF sy-uzeit > '060000'.
  EXIT .
ENDIF.

WAIT UP TO 5 SECONDS.

ENDDO.

--------------------------------------------------------------------
*END-OF-SELECTION
--------------------------------------------------------------------
END-OF-SELECTION.

----------------------------------------------------------------------

  •    Start new screen                                              *
    

----------------------------------------------------------------------
FORM bdc_dynpro USING program dynpro.
CLEAR bdcdata.
bdcdata-program = program.
bdcdata-dynpro = dynpro.
bdcdata-dynbegin = ‘X’.
APPEND bdcdata.
ENDFORM.

----------------------------------------------------------------------

  •    Insert field                                                  *
    

----------------------------------------------------------------------
FORM bdc_field USING fnam fval.
CLEAR bdcdata.
bdcdata-fnam = fnam.
bdcdata-fval = fval.
APPEND bdcdata.
ENDFORM.
&---------------------------------------------------------------------
*& Form FRM_SM12_BDC
&---------------------------------------------------------------------

  •  SM12  BDC解锁   likp  lips  vbak  vbap
    

----------------------------------------------------------------------

  •  -->P_0111   text
    

----------------------------------------------------------------------
FORM frm_sm12_bdc USING p_0111.
REFRESH:bdcdata,
messtab.

PERFORM bdc_dynpro USING ‘RSENQRR2’ ‘1100’.
PERFORM bdc_field USING ‘BDC_CURSOR’
‘SEQG3-GNAME’.
PERFORM bdc_field USING ‘BDC_OKCODE’
‘=GO’.
PERFORM bdc_field USING ‘SEQG3-GNAME’
p_0111.
PERFORM bdc_field USING ‘SEQG3-GCLIENT’
sy-mandt.
PERFORM bdc_field USING ‘SEQG3-GUNAME’
‘*’.
PERFORM bdc_dynpro USING ‘SAPMSSY0’ ‘0120’.
PERFORM bdc_field USING ‘BDC_CURSOR’
‘04/03’.
PERFORM bdc_field USING ‘BDC_OKCODE’
‘=&ALL’.
PERFORM bdc_dynpro USING ‘SAPMSSY0’ ‘0120’.
PERFORM bdc_field USING ‘BDC_CURSOR’
‘04/03’.
PERFORM bdc_field USING ‘BDC_OKCODE’
‘=DELM’.
PERFORM bdc_dynpro USING ‘SAPLSPO1’ ‘0100’.
PERFORM bdc_field USING ‘BDC_OKCODE’
‘=YES’.
PERFORM bdc_dynpro USING ‘SAPMSSY0’ ‘0120’.
PERFORM bdc_field USING ‘BDC_OKCODE’
‘=BACK’.

CALL TRANSACTION ‘SM12’ USING bdcdata MODE bdcmode UPDATE bdcupdate
MESSAGES INTO messtab .

COMMIT WORK AND WAIT.

  • LOOP AT messtab .
  • CLEAR: gv_mes,l_number,l_msgv1,l_msgv2,l_msgv3,l_msgv4.
  • l_number = messtab-msgnr.
  • l_msgv1 = messtab-msgv1.
  • l_msgv2 = messtab-msgv2.
  • l_msgv3 = messtab-msgv3.
  • l_msgv4 = messtab-msgv4.
  • CALL FUNCTION ‘MESSAGE_TEXT_BUILD’
  •  EXPORTING
    
  •    msgid               = messtab-msgid
    
  •    msgnr               = l_number
    
  •    msgv1               = l_msgv1
    
  •    msgv2               = l_msgv2
    
  •    msgv3               = l_msgv3
    
  •    msgv4               = l_msgv4
    
  •  IMPORTING
    
  •    message_text_output = gv_mes.
    
  • WRITE gv_mes.
  • ENDLOOP.

ENDFORM.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

放弃幻想_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值