原创 无峰 [ ABAP 技巧与实战 ](javascript:void\(0\);)
**点击蓝字** 关注我们
一
前言
项目中使用接口通过JDBC SENDER通道读取中间表的数据,传入S/4系统. 外围系统提出该接口只能在每天特定的时间段执行. 为了解决这个需求.
特别研究了一下PO通道控制相关的内容.
PO/PI通过通道适配器与外部系统交互数据,可用的通道适配器有很多(如图一).其中常用的几种
• FILE 文件通道
• JDBC 数据库直接访问
• REST REST调用
• SOAP WEBSERVICE调用
• HTTP_AAE HTTP调用
**本文主要介绍PO系统中通道的控制及可用性计划**
图一
二
通道控制方式
PO中大致可以通过两种方式控制通道的工作
• 激活标记
• 通道启停状态(无激活标记也是一种特殊的通道状态)
进入通道状态控制的路径(图二)
图二
三
通道状态控制方式
通道状态区分了三种控制方式
• 自动控制: 通过通道可用性计划控制通道状态
• 手工控制: 手工启动或停止通道
• 外部控制: 估计是通过特定外部调用方式修改PO的通道状态.具体方式本文未涉及
四
通道激活标记
激活标记是通道创建的时候的一个标记,通过设置该标记表示通道相关配置已经就绪.如果通道没有设置激活标记, 在通道监控中将会看到一个不活动状态
五
通道状态-手工控制
对于激活了的通道,则可以通过通道状态控制通道是否能够使用.
当没有按下自动控制/外部控制时. 通道状态控制方式为手工控制. 可以通过手工点击开始/停止按钮控制通道状态
六
通道状态-自动控制
按下自动控制按钮后,通道进入自动控制模式,此时可以通过设定可用性计划控制通道
七
通道可用性计划
当通道状态设置为自动控制时.可以定义可用性计划来确定控制通道的启动/停止.执行步骤如下
_**01** _
**进入可用性计划标签**
进入可用性计划标签,执行后续处理
_**02** _
**新建一个计划**
新建计划时,需要选择一个执行频率
_**03** _
**计划基本属性**
输入计划的基本属性
• 活动:用于控制计划是否执行
• 描述:用于描述计划内容
• 开始日期/时间(结束日期/时间) : 用来控制通道的自动启动和自动停止日期/时间
• 持续时间: 系统自动计算出通道活动的持续时间
• 结束于: 计划的截至日期, 超过该日期,计划就失效了.
_**04** _
**计划的通道过滤**
通道过滤包含两个部分
• 计划的通道: 表示计划覆盖的通道
• 豁免的通道: 表示计划未覆盖的通道.
如果只需要设置特定的通道,比如CCO_SOAP, 可以先把所有通道移动到豁免的通道, 然后把特定通道在移动回来. (如图三)
通过这组按钮实现通道的移动 (如图四)
图三
图四
_**05** _
**计划概览**
设置好计划后,可以通过通道的时间表看到通道的计划执行日期及计划执行时间段
_**06** _
**通道管理信息**
可以通过通道的当前状态和通道管理信息中的操作日志查看通道的状态切换.
八
通道状态对通道调用的影响
当通道状态是停止或非激活.对不同类型的出站/入站通道产生的影响不太一样.
**出站通道(通道属性RECEIVER)**
对于所有的出站通道,PO中的消息处理将会报错(通道未激活或通道未启动),但是对于异步接口的调用发出方没有影响,发处方可以成功调用PO的接口,传输数据.
**入站通道(通道属性SENDER)**
对于JDBC/文件类入站通道,由PO主动执行的入站通道, PO将不执行数据库的查询或文件的读取.
对于HTTP/SOAP/REST 类型的入站通道. 未激活或停止的通道,其它系统调用PO接口将会报错HTTP/1.1 500 Internal Server
Error,如下图
九
控制示例
回到文章开头业务提出的控制需求.
解决方式是通过设置通道的执行间隔: 比如设置为1800秒一次. 然后定义一个计划, 控制该通道每天18:00->19:00执行即可.
十
总结
通道可用性计划用于制定通道的自动启动/停止计划. 通过该计划控制通道状态,进一步控制外部系统调用PO的接口或者PO调用外部系统的接口.
确保接口只有在特定的时间段允许执行.
实际使用中,文件通道/JDBC通道的发送方控制有实际意义(由PO控制数据/文件的定时读取).其它端口启用通道可用性计划意义不太大.
除非业务严格规定了特定接口只能在特定时间段调用,禁止其它时间段调用.
** THE **
** END **
**约定**
如果你对这篇文章感兴趣,请帮忙点赞,在看,分享.
( **如果你真的喜欢这篇文章,请记得回来打个赏,作为支持我继续下去的动力,这是一个正反馈过程.
越多的人打赏,作者越有动力分享,读者就能享受更多的福利.毕竟打赏的金额富不了我,穷不了你,却能支持这个公众号长久发文.** )
**公众号 : syjf1976_abap**
**ABAP开发技巧**
**微信号 : 392077**
**公众号主群加入受限, 请扫码加入副群后,向管理员申请加入主群**