在sap的应用中,很多地方需要用到地址和联系方式,sap对于地址采用了集中维护,最近对这进行了学习,收集到的一些资料供大家参考,也请大家多多指点。
一、相关package
SZAD
二、相关表(可以参见ADDR_SAVE_INTERN函数的操作)
1 ADR2 : 电话号码 (业务地址服务)(ADDRNUMBER(10),PERSNUMBER(10))
2.ADR3:传真号 (业务地址服务)(ADDRNUMBER(10),PERSNUMBER(10))
3.ADR4:电传号码 (业务地址服务)(ADDRNUMBER(10),PERSNUMBER(10))
4.ADR5:电传号码 (业务地址服务)(ADDRNUMBER(10),PERSNUMBER(10))
5.ADR6:SMTP 编号 (业务地址服务)(ADDRNUMBER(10),PERSNUMBER(10))
6.ADR7:远程邮件地址 (R/3 - R/3; 业务地址服务) (ADDRNUMBER(10),PERSNUMBER(10))
7.ADRC:地址 (业务地址服务) (ADDRNUMBER(10))
8.ADCP:个人/地址分配 (业务地址服务)(ADDRNUMBER(10),PERSNUMBER(10)),纪录用户哪些数据被维护如:FLAGCOMM3为'X'表示传真号被维护;
9.ADRP:个人(办公地址管理)(PERSNUMBER(10))
三、相关BAPI
BAPI_ADDRESSPERS_CHANGE
BAPI_ADDRESSPERS_GETDETAIL
四、获取下一个地址自动编号(代码)
1.供应商地址的读取
addr_ref-appl_table = 'EKKO'.
addr_ref-appl_field = 'ADRNR'.
addr_ref-appl_key(3) = ekko-mandt.
addr_ref-appl_key+3(10) = ekko-ebeln.
addr_ref-addr_group = 'ME03'.
addr_ref-owner = space.
* get address number
CALL FUNCTION 'ADDR_NUMBER_GET'
EXPORTING
address_handle = address_handle
address_reference = addr_ref
IMPORTING
address_number = p_ekko-adrnr
EXCEPTIONS
address_handle_not_exist = 1
internal_error = 2
parameter_error = 3
OTHERS = 4.
2.客户的地址
3.获取合作伙伴地址号码
先获取联系人编号
REFERENCE-APPL_TABLE = ‘KNVK’.
REFERENCE-APPL_FIELD = ‘PRSNR’.
*PERSON-KEY_CONTENT为合作伙伴的编号
CONCATENATE SY-MANDT PERSON-KEY_CONTENT INTO REFERENCE-APPL_KEY.
REFERENCE-PERS_GROUP = C_ADDRESS_GROUP.
REFERENCE-ADDRNUMBER = ADDRESS_NUMBER.
IF ADDRESS_TYPE = C_TYPE_2.
REFERENCE-PERS_ADDR = 'X'.
CLEAR REFERENCE-ADDRNUMBER.
ELSE.
CLEAR REFERENCE-PERS_ADDR.
ENDIF.
REFERENCE-OWNER = 'X'.
CALL FUNCTION 'ADDR_PERSON_NUMBER_GET'
EXPORTING
PERSON_HANDLE = PERSONHANDLE
PERSON_REFERENCE = REFERENCE
IMPORTING
PERSON_NUMBER = ZAV_TAB-PERSON-NUMBER
EXCEPTIONS
INTERNAL_ERROR = 1
PERSON_HANDLE_NOT_EXIST = 2
PARAMETER_ERROR = 3
OTHERS = 4.
*在获取地址编号
CALL FUNCTION 'NUMBER_GET_NEXT'
EXPORTING
NR_RANGE_NR = '01'
OBJECT = 'ADRNR'
QUANTITY = REQUESTED_QUANTITY
IMPORTING
NUMBER = NUMBER
QUANTITY = QUANTITY
RETURNCODE = RETURNCODE_NUMBERRANGE
EXCEPTIONS
INTERVAL_NOT_FOUND = 1
NUMBER_RANGE_NOT_INTERN = 2
OBJECT_NOT_FOUND = 3
QUANTITY_IS_0 = 4
QUANTITY_IS_NOT_1 = 5
INTERVAL_OVERFLOW = 6
OTHERS = 7.
五、一些常用地址如何读取
1. 客户地址
客户地址的读取你首先要读KNA1表,找出客户对应的地址编号(ADRNR)字段,在根据此字段去读取ADRC表,再读取其他相关表(ADR2 ..)
SELECT * FROM ADR2
INTO TABLE <ft_temp>
WHERE addrnumber = iv_addrnumber
AND persnumber = iv_persnumber.
2 SD的合作伙伴的地址
KNVK:户主要联系伙伴(PARNR(10)),该表含有连个字段:ADRNP_2(10)->地址号码,PRSNR(10)->人员编号,再根据这两个号码去读取相关表数据。
六、地址写入代码摘抄
FUNCTION ADDR_SAVE_INTERN.
*"----------------------------------------------------------------------
*"*"Verbuchungsfunktionsbaustein:
*"
*"*"Lokale Schnittstelle:
*" TABLES
*" ADRC_D STRUCTURE ADRC
*" ADRC_U STRUCTURE ADRC
*" ADRC_I STRUCTURE ADRC
*" ADRCT_D STRUCTURE ADRCT
*" ADRCT_U STRUCTURE ADRCT
*" ADRCT_I STRUCTURE ADRCT
*" ADRP_D STRUCTURE ADRP
*" ADRP_U STRUCTURE ADRP
*" ADRP_I STRUCTURE ADRP
*" ADCP_D STRUCTURE ADCP
*" ADCP_U STRUCTURE ADCP
*" ADCP_I STRUCTURE ADCP
*" ADRT_D STRUCTURE ADRT
*" ADRT_U STRUCTURE ADRT
*" ADRT_I STRUCTURE ADRT
*" ADR2_D STRUCTURE ADR2
*" ADR2_U STRUCTURE ADR2
*" ADR2_I STRUCTURE ADR2
*" ADR3_D STRUCTURE ADR3
*" ADR3_U STRUCTURE ADR3
*" ADR3_I STRUCTURE ADR3
*" ADR4_D STRUCTURE ADR4
*" ADR4_U STRUCTURE ADR4
*" ADR4_I STRUCTURE ADR4
*" ADR5_D STRUCTURE ADR5
*" ADR5_U STRUCTURE ADR5
*" ADR5_I STRUCTURE ADR5
*" ADR6_D STRUCTURE ADR6
*" ADR6_U STRUCTURE ADR6
*" ADR6_I STRUCTURE ADR6
*" ADR7_D STRUCTURE ADR7
*" ADR7_U STRUCTURE ADR7
*" ADR7_I STRUCTURE ADR7
*" ADR8_D STRUCTURE ADR8
*" ADR8_U STRUCTURE ADR8
*" ADR8_I STRUCTURE ADR8
*" ADR9_D STRUCTURE ADR9
*" ADR9_U STRUCTURE ADR9
*" ADR9_I STRUCTURE ADR9
*" ADR10_D STRUCTURE ADR10
*" ADR10_U STRUCTURE ADR10
*" ADR10_I STRUCTURE ADR10
*" ADR11_D STRUCTURE ADR11
*" ADR11_U STRUCTURE ADR11
*" ADR11_I STRUCTURE ADR11
*" ADR12_D STRUCTURE ADR12
*" ADR12_U STRUCTURE ADR12
*" ADR12_I STRUCTURE ADR12
*" ADR13_D STRUCTURE ADR13
*" ADR13_U STRUCTURE ADR13
*" ADR13_I STRUCTURE ADR13
*" ADRCOMC_D STRUCTURE ADRCOMC
*" ADRCOMC_U STRUCTURE ADRCOMC
*" ADRCOMC_I STRUCTURE ADRCOMC
*" ADRG_D STRUCTURE ADRG
*" ADRG_U STRUCTURE ADRG
*" ADRG_I STRUCTURE ADRG
*" ADRGP_D STRUCTURE ADRGP
*" ADRGP_U STRUCTURE ADRGP
*" ADRGP_I STRUCTURE ADRGP
*" ADRV_D STRUCTURE ADRV
*" ADRV_U STRUCTURE ADRV
*" ADRV_I STRUCTURE ADRV
*" ADRVP_D STRUCTURE ADRVP
*" ADRVP_U STRUCTURE ADRVP
*" ADRVP_I STRUCTURE ADRVP
*" EXCEPTIONS
*" DATABASE_ERROR
*" INTERNAL_ERROR
*"----------------------------------------------------------------------
* Initialisierung der FG sicherstellen
PERFORM CHECK_FOR_INITIALIZATION.
DEFINE WRITE_TO_DB.
DELETE &1 FROM TABLE &1_D.
IF SY-SUBRC <> 0.
MESSAGE A840 WITH '&1' RAISING DATABASE_ERROR.
* Datenbankfehler beim L鰏chen aus Tabelle &
ENDIF.
UPDATE &1 FROM TABLE &1_U.
IF SY-SUBRC <> 0.
MESSAGE A841 WITH '&1' RAISING DATABASE_ERROR.
* Datenbankfehler beim 膎dern von Tabelle &
ENDIF.
INSERT &1 FROM TABLE &1_I.
IF SY-SUBRC <> 0.
MESSAGE A842 WITH '&1' RAISING DATABASE_ERROR.
* Datenbankfehler beim Einf黦en in Tabelle &
ENDIF.
END-OF-DEFINITION.
WRITE_TO_DB ADRC .
* WRITE_TO_DB ADRCT . "*912d
DELETE ADRCT FROM TABLE ADRCT_D. "*912i
IF SY-SUBRC <> 0. "*912i
MESSAGE A840 WITH 'ADRCT' RAISING DATABASE_ERROR. "*912i
ENDIF. "*912i
UPDATE ADRCT FROM TABLE ADRCT_U. "*912i
IF SY-SUBRC <> 0. "*912i
MESSAGE A841 WITH 'ADRCT' RAISING DATABASE_ERROR. "*912i
ENDIF. "*912i
MODIFY ADRCT FROM TABLE ADRCT_I. "*912i
IF SY-SUBRC <> 0. "*912i
MESSAGE A842 WITH 'ADRCT' RAISING DATABASE_ERROR. "*912i
ENDIF. "*912i
WRITE_TO_DB ADRP .
WRITE_TO_DB ADCP .
WRITE_TO_DB ADRT .
WRITE_TO_DB ADR2 .
WRITE_TO_DB ADR3 .
WRITE_TO_DB ADR4 .
WRITE_TO_DB ADR5 .
WRITE_TO_DB ADR6 .
WRITE_TO_DB ADR7 .
WRITE_TO_DB ADR8 .
WRITE_TO_DB ADR9 .
WRITE_TO_DB ADR10 . "*178i
WRITE_TO_DB ADR11 . "*178i
WRITE_TO_DB ADR12 . "*178i
WRITE_TO_DB ADR13 . "*178i
WRITE_TO_DB ADRCOMC.
WRITE_TO_DB ADRG .
WRITE_TO_DB ADRGP .
WRITE_TO_DB ADRV .
WRITE_TO_DB ADRVP .
ENDFUNCTION.
分享到:
相关推荐
ABAP - Keyword Documentation This documentation describes the syntax and meaning of the keywords of the ABAP language and its object-oriented part ABAP Objects. Alongside this, language frameworks ...
本文档是《SAP中文教材全系列之ABAP-BC400_ZH》,为SAP ABAP编程语言的学习提供参考。文档包含了详细的ABAP课程内容,旨在帮助学员理解并掌握ABAP编程的基础知识和高级技能。以下将详细阐释文档所涵盖的知识点。 ...
简单来讲,SAPLINK就是用来导入和导出ABAP程序,等开发对象的一个开源分享项目的产物. 1.上载前置工具程序 导入SAPLINK需要使用ZSAPLINK_INSTALLER程序进行导入. TCode:SE38,新建名为ZSAPLINK_INSTALLER的程序. 2....
ABAP-ALV进阶是指在SAP系统中使用ABAP语言开发的高级列表查看器(ALV)。ALV是SAP系统中心的列表标准,可以在ABAP程序中进行报表输出。下面是ABAP-ALV进阶的知识点详解: 一、ALV概要 ALV 全称为 ABAP List Viewer...
SAP-ABAP-Certification-Review.pdf
在SAP系统中,ABAP(Advanced Business Application Programming)是一种编程语言,用于开发和定制企业资源规划(ERP)软件,而MM(Materials Management)模块则是SAP中的一个重要部分,主要处理采购、库存管理和...
ABAP-培训教材附录 ABAP-培训教材ABAP-培训教材ABAP-培训教材ABAP-培训教材
eclipse-abap-keywordcolors eclipse-abap-关键字颜色
SAP ABAP 动态内表详解 SAP ABAP 中的动态内表是一种特殊的内表结构,它可以根据实际情况动态地生成和赋值。本文将详细介绍动态内表的创建、赋值和读取显示。 动态内表的创建 动态内表的创建主要分为两步:首先...
### SAP-ABAP-OO 实现 CL-SALV-TABLE 的关键知识点 #### 1. ABAP 面向对象的 ALV 显示方法 在 SAP 的 ABAP 环境中,ALV (Application List Viewer) 是一种非常常用的技术,用于在屏幕上以表格的形式展示数据。传统...
CD260-ABAP-in-Eclipse-开发-CN CD260-ABAP-in-Eclipse-开发-CNCD260-ABAP-in-Eclipse-开发-CNCD260-ABAP-in-Eclipse-开发-CN
ABAP(Advanced Business Application Programming)是SAP公司推出的一种编程语言,主要用于开发SAP系统中的业务应用程序。SAP系统在全球企业资源规划(ERP)领域有着广泛的应用,而ABAP则是其核心开发语言,使得...
SAP ABAP-BC401是SAP ABAP(高级商业应用编程语言)的一部分,它是一种编程语言,专门为SAP软件应用开发。ABAP-BC401的内容覆盖了SAP ABAP开发的各个方面,旨在帮助读者深入掌握ABAP开发技能。从提供的文件内容来看...
这个名为"SAP资料集有ABAP-PP-MM-RFC-BAPI-JCO等.rar"的压缩包文件包含了多个与SAP相关的学习资料,涵盖了许多关键模块和技术,包括ABAP编程、生产计划(PP)、物料管理(MM)、远程功能调用(RFC)、业务对象接口...
ABAP-OLE开发是SAP系统中的一种技术,它允许ABAP编程语言与外部对象链接和嵌入(OLE)应用程序进行交互。OLE自动化是Windows环境中的一种技术,它使得不同的应用程序可以共享数据和服务,通常用于控制一个应用程序...
ABAP中SQL语法详细介绍,包括基础语法和各种聚合函数,如MAX,MIN,AVG,COUNT,SUM,DIV,MOD,CEIL,FLOOR,DIVSION,ROUND,FOR ALL ENTRIES IN.除了各种聚合函数还有字段拆分,连接,子语句查询,字段类型转换,分情况赋值...
1、解压后,支持直接导入ABAP 2、支持文本编辑器打开 3、如有不解之处,可以查阅文章:《金色传说:SAP-ABAP-IW21/IW22通知单保存增强:保存通知单时根据特殊条件创建新的事故通知单》或搜索公众号:SAPABAP金色传说
"实战SAP程序开发--从实例学SAP ABAP编程"这本书无疑为我们提供了一个深入学习和实践SAP ABAP的机会。 ABAP是SAP NetWeaver平台的核心部分,它允许开发者创建业务应用程序、报表、用户接口以及与其他系统的接口。...
面向对象的 ABAP 编程, 非常好, 不过需要ABAP 基础. 格式是djvu格式, 如果打不开,请google .djvu