常用bapi函数积累中........

来源:互联网 发布:python迭代器 编辑:程序博客网 时间:2024/06/02 12:43

常用bapi函数, 逐渐积累, 已经掌握了一些, 还有一些要看看.

1. 将服务器文件下载到本地.

 C13Z_FILE_DOWNLOAD_BINARY或C13Z_FILE_DOWNLOAD_ASCII

2. 读取长文本函数是READ_TEXT, 其中参数可以从表STXH或STXL中查出,如果自己实在不确定可以采用st05跟踪SQL得到,

   如果是自己保存长文本函数可以先INIT_TEXT, 再保存SAVE_TEXT就可以了. 我相信大家是否用过增强开发, 但是如果想增强长文本, 那么文本的TDID是需要增加的, 我发现增加TDID需要维护两个表, 一个是TTXID另一个是TTXIT, 最重要的是TTXID这个表, 需要维护TDOBJECT的对应的TDID, 只要将表的属性改为可维护, 然后增加相应的你需要的TDID, 就可以了.

3. 分类

    CLAS_READ_FEATURE_INFO 可以获得设备分类中的特性信息, 但由于是系统内部的bapi, 可能会出现字段无法满足用户需求的情况, 这个就需要用户自己开发相应的结构和bapi函数了

    BAPI_CLASS_SELECT_OBJECTS 根据分类名称和类型查找到使用这个分类的设备的名称和ERP编号

4. 计量点和计量凭证处理

    计量凭证处理是MEASUREM_DOCUM_RFC_SINGLE_001可以创建相应的计量凭证, 实现外部系统与ERP的互联

5. 实现SAPOFFICE处理方法

     SAP的OFFICE中形成简单邮件的是SO_DYNP_SHORT_MESSAGE, 还挺好用的.

6. 通知单

     建立通知单的标准BAPI是IQS4_CREATE_NOTIFICATION, 而对于IQS0_CREATE_NOTIFICATION, 我调用的时候参数总是不正确, 还有BAPI_SERVICENOTIFICAT_CREATE和BAPI_SERVNOT_CREATE这两个功能上看上去差不多, 调用时也不出错, 但是就是没有任何结果显示, 所以也不知道怎么调, IQS4_CREATE_NOTIFICATION这个函数一定要把I_COMMIT选中, 否则只进行内表的通知单创建, 而不对物理更新.

7. SAPOffice

     在SAP中实现发内部邮件的BAPI是SO_NEW_DOCUMENT_SEND_API1但是调用的时候一定要注意参数的形式和内容, 否则调用会不正确, 网上某人给出的示例代码, 很好用.

     data:   error_msg(80),
        subject like sodocchgi1,
        msg_body like solisti1 occurs 0 with header line,
        receivers like somlreci1 occurs 0 with header line.

* Fill recipient list
  receivers-receiver = sy-uname. " or some other user ID
  append receivers.
  receivers-receiver = 'XY'.
  append receivers.

* Fill subject
  subject-obj_descr = '我已经找到了如何发内部邮件的BAPI'.

* Fill message body
  msg_body-line = 'Program XXX has failed with the following error:'.
  append msg_body.

  clear msg_body.  append msg_body.

  msg_body-line = error_msg.     " assuming error_msg has been filled
  append msg_body.

* Send message
  call function 'SO_NEW_DOCUMENT_SEND_API1'
    exporting
         document_data       = subject
         put_in_outbox       = 'X'

    tables
         object_content      = msg_body
         receivers           = receivers.

修改用户状态的BAPI
    I_CHANGE_STATUS, 这个比较好用, 还有几个大家也可以参考,但我个人用的时候,觉得不是很好用.
    STATUS_CHANGE_EXTERN
    CMOR_STATUS_RESET

修改服务订单的bapi
    BAPI_SERVNOT_MODIFY_DATA

修改订单的bapi
    RFC_CHANGE_PM_ORDER 但是这个只能调用修改的界面, 没有形成直接修改的数据, 但是这个可能是可以修改的.

原创粉丝点击