自定义出站IDoc创建、跨客户端发送及状态29问题排查分步指导
自定义出站IDoc状态29(未发送,ALE服务错误)分步排查指南
一、基础ALE配置检查(最常见触发原因)
- 伙伴配置校验(WE20)
- 确认目标客户端对应的
LS类型伙伴已维护,出站参数中:消息类型需与自定义IDoc绑定的一致,端口类型(如TRFC)选择正确,关联的RFC目标(SM59配置)无拼写错误。 - 检查出站参数的
IDoc类型是否为你自定义的IDoc,版本(如30)匹配当前系统。
- 确认目标客户端对应的
- RFC目标有效性(SM59)
- 测试目标客户端的RFC连接:点击「测试连接」和「远程登录」,确认网络连通且登录正常。
- 确保RFC目标使用的用户拥有权限对象
S_IDOC_ALL、S_RFC,避免因权限不足导致发送失败。
- 消息类型与IDoc关联(WE82)
- 确认自定义消息类型与IDoc类型的出站方向(标识
1)条目已维护,无缺失或错误匹配。
- 确认自定义消息类型与IDoc类型的出站方向(标识
- 端口配置检查(WE21)
- 若使用TRFC端口,验证端口关联的RFC目标与SM59中配置的完全一致。
二、IDoc生成程序逻辑验证
- 控制记录(EDIDC)字段校验
- 确认程序中
DIRECT(出站需设为1)、RCVPRT(伙伴类型,如LS)、RCVPRN(目标伙伴编号)、MESTYP(消息类型)、IDOCTYP(自定义IDoc类型)等关键字段赋值正确,无空值或错误值。
- 确认程序中
- 数据段(EDIDD)构建检查
- 表头、项目段的
SEGNAM需与创建的段名完全一致(SAP中为大写),避免因名称不匹配导致段识别失败。 - 项目段的
PARENT字段需正确关联表头段的DOCNUM与SEGNUM,确保层级关系有效。 - 检查VBAK/VBAP字段赋值是否类型匹配(如字符型字段不能传入数值型数据),避免数据转换错误。
- 表头、项目段的
- 发送函数调用验证
- 程序调用
MASTER_IDOC_DISTRIBUTE后,必须检查返回的RETURN表,若存在错误消息,直接根据消息文本定位问题。 - 确认
MASTER_IDOC_CONTROL参数的OUTPUT_MODE:设为1为立即发送,设为2则需通过RSARFCEX触发收集的IDoc。
- 程序调用
三、IDoc错误详情深挖
- IDoc状态明细查看(WE02/WE05)
- 选中状态29的IDoc,点击「状态信息」查看具体错误描述(如「伙伴未维护」「RFC连接超时」),这是最快的定位线索。
- 查看控制记录(EDIDC)内容,确认接收方信息、消息类型、IDoc类型等核心字段是否正确。
- TRFC错误日志检查(SM58)
- 若使用TRFC发送,SM58中会留存未执行的TRFC条目,查看错误原因(如权限不足、目标系统不可达)并针对性修复。
四、补充缺失的流程步骤
- 完善伙伴配置(WE20)
- 若未维护目标伙伴,新增
LS类型伙伴,在出站参数中绑定自定义消息类型与IDoc类型,指定端口及对应RFC目标。
- 若未维护目标伙伴,新增
- 维护分配模型(BD64)
- 创建分配模型,设置发送方为当前客户端、接收方为目标客户端,分配自定义消息类型后执行
BD82生成伙伴配置,确保配置同步。
- 创建分配模型,设置发送方为当前客户端、接收方为目标客户端,分配自定义消息类型后执行
- 补充权限
- 为程序运行用户添加权限对象:
S_IDOC_ACT(IDoc处理权限)、S_RFC(RFC调用权限)、V_VBAK_VKO(销售订单读取权限)等。
- 为程序运行用户添加权限对象:
五、测试验证步骤
- IDoc类型测试(WE19)
- 在WE19中加载自定义IDoc类型,手动填充表头、项目段数据,点击「标准出站处理」模拟发送,根据返回结果排查配置或数据问题。
- 程序调试
- 在
MASTER_IDOC_DISTRIBUTE函数处设置断点,检查传入的控制记录、数据段参数是否正确,查看函数返回的错误信息。
- 在
- 目标客户端验证
- 发送成功后,登录目标客户端通过WE02查看IDoc状态,确认是否接收成功(状态53)。
内容的提问来源于stack exchange,提问作者Vishal__2546
相关产品推荐
相关产品推荐

