关于BAPI_PATIENT_CREATE(病患主数据创建)
2017-01-11 16:06
288 查看
第一次使用BAPI,遇到几个问题。现总结如下。
2017.1.11:在文末更新了两条比较关键的注意事项。
调用之后,没能成功创建任何数据(NEW_PATIENT_DATA为空)。该问题有几种可能性:
传入的数据有误,此时可在参数return中看到错误提示。可以在前台(事务代码NP01),或者相关的表(NPNT)中查看输入帮助,以获知正确的输入方式。
运行时使用了测试模式(TESTRUN = 'X')。
调用后,没有使用BAPI_TRANSACTION_COMMIT.
调用之后,返回的NEW_PATIENT_DATA中数据正常,但是地址数据没有更新(E_ADDRESSES为空),原因可能是:
传入的patient_data中的addr_no和I_ADDRESSES中的addr_no没有对应关系。
调用之后,返回的NEW_PATIENT_DATA中数据正常,但是附加电话号码数据没有更新(E_ADD_PHONES 为空):
传入的patient_data中的addr_no和I_ADD_PHONES中的addr_no没有对应关系。
I_ADDRESSES-OTHER_PHONES不为'X'。只有在传入的I_ADDRESSES-OTHER_PHONES为'X'时,相应的I_ADD_PHONES才会生效。
更新:
关于电话号码,也可以在创建病患后,使用BAPI_BUPA_ADDRESS_CHANGE对其进行修改,并在其中分别指定移动电话(Cell)或者非移动电话(Telephone)。
可以使用BAPI_PATIENT_CHANGE将已存在的病患扩展(EXTEND)到其它机构。
BAPI_PATIENT_CREATE内部会调用用于检查相似病患的函数ISH_NPAT_DOUBLE_TEST,并在检查到相似病患后增加类型W、提示相似病患数量的返回消息(在RETRURN中可以看到)。随着创建的重复病患数量的增加,该函数对性能的影响会越来越大,严重拖慢创建病患的速度。在某些场景下(比如反复批量创建用于测试的病患数据时),可以考虑通过增强的方式跳过这一检查,以提高效率。
创建的病患的机构(institution)不会存储在病患主数据表NPNT中,而是存储到表NPAE中,尽管NPNT中也存在机构字段。
BAPI_BUPA_ADDRESS_CHANGE
-->
本文链接:http://www.cnblogs.com/hhelibeb/p/6132826.html
2017.1.11:在文末更新了两条比较关键的注意事项。
CALL FUNCTION 'BAPI_PATIENT_CREATE' EXPORTING client = * INSTITUTION = '*' * PATIENTID = ' ' * SAP_BPARTNERID = ' ' * SAP_BPGROUP = patient_data = * TESTRUN = ' ' * TRANSACT_MODE = 'N' * IMPORTING * NEW_PATIENT_DATA = * WORST_RETURNED_MSGTY = * TABLES * I_ADDRESSES = * I_ADD_PHONES = * E_ADDRESSES = * E_ADD_PHONES = * RETURN = * I_LEGAL_REP = * E_LEGAL_REP = .
调用之后,没能成功创建任何数据(NEW_PATIENT_DATA为空)。该问题有几种可能性:
传入的数据有误,此时可在参数return中看到错误提示。可以在前台(事务代码NP01),或者相关的表(NPNT)中查看输入帮助,以获知正确的输入方式。
运行时使用了测试模式(TESTRUN = 'X')。
调用后,没有使用BAPI_TRANSACTION_COMMIT.
调用之后,返回的NEW_PATIENT_DATA中数据正常,但是地址数据没有更新(E_ADDRESSES为空),原因可能是:
传入的patient_data中的addr_no和I_ADDRESSES中的addr_no没有对应关系。
调用之后,返回的NEW_PATIENT_DATA中数据正常,但是附加电话号码数据没有更新(E_ADD_PHONES 为空):
传入的patient_data中的addr_no和I_ADD_PHONES中的addr_no没有对应关系。
I_ADDRESSES-OTHER_PHONES不为'X'。只有在传入的I_ADDRESSES-OTHER_PHONES为'X'时,相应的I_ADD_PHONES才会生效。
更新:
关于电话号码,也可以在创建病患后,使用BAPI_BUPA_ADDRESS_CHANGE对其进行修改,并在其中分别指定移动电话(Cell)或者非移动电话(Telephone)。
可以使用BAPI_PATIENT_CHANGE将已存在的病患扩展(EXTEND)到其它机构。
BAPI_PATIENT_CREATE内部会调用用于检查相似病患的函数ISH_NPAT_DOUBLE_TEST,并在检查到相似病患后增加类型W、提示相似病患数量的返回消息(在RETRURN中可以看到)。随着创建的重复病患数量的增加,该函数对性能的影响会越来越大,严重拖慢创建病患的速度。在某些场景下(比如反复批量创建用于测试的病患数据时),可以考虑通过增强的方式跳过这一检查,以提高效率。
创建的病患的机构(institution)不会存储在病患主数据表NPNT中,而是存储到表NPAE中,尽管NPNT中也存在机构字段。
BAPI_BUPA_ADDRESS_CHANGE
-->
本文链接:http://www.cnblogs.com/hhelibeb/p/6132826.html
相关文章推荐
- BAPI_PO_CREATE1创建服务类PO的关键数据关系
- 'BAPI_REQUIREMENTS_CREATE' --创建月需求计划(MD61)
- 关于pthread_create创建线程, 产生segment错误。
- CreateCompatibleBitmap,关于兼容DC的创建与资源回收
- 创建采购申请---BAPI_REQUISITION_CREATE
- 根据BAPI_PO_CREATE1创建采购订单
- 'BAPI_REQUIREMENTS_CREATE' --创建月需求计划(MD61)
- 关于创建数据表的设想
- 关于C++调用jar包,在创建虚拟机时使用JNI_CreateJavaVM调用失败返回-1的问题
- BAPI_PO_CREATE创建采购订单
- QML与c++交互学习笔记(六) 关于qt c++中创建对象,QML获取此对象数据问题
- Setting the defaults for database access——使用createTables.php自动创建数据模型
- 借用implicit创建我们自己的布尔数据类型-create MyBool data type by implicit
- sap-使用 JCO 调用bapi创建物料主数据
- BAPI_PO_CREATE1 创建采购订单时价格的处理函数
- BAPI_INCOMINGINVOICE_CREATE 创建发票时报错
- oracle中关于表的所有操作(创建删除表,修改表结构,创建约束,操作表数据,增删改查等)
- oracle中关于表的所有操作(创建删除表,修改表结构,创建约束,操作表数据,增删改查等)
- 关于msdn上面的《Web 窗体页创建分页的数据访问》的改进
- 关于使用 class_create,device_create,class_device_create 创建设备节点