常用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 但是这个只能调用修改的界面, 没有形成直接修改的数据, 但是这个可能是可以修改的.