如何在运行时访问/更改接收器适配器参数

2020-08-22 20:17发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


亲爱的

我想使用一个iFlow并动态使用它,而不是创建多个iFlow。

在我的场景中,我想使用SFTP适配器并在运行时更改地址和凭据的参数。 地址和凭据名称(当然,这些地址和凭据名称首先已部署在CPI安全材料上)在运行时应更改为

您能提供建议如何实现吗?

谢谢。

最好的问候

Timmy

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


亲爱的

我想使用一个iFlow并动态使用它,而不是创建多个iFlow。

在我的场景中,我想使用SFTP适配器并在运行时更改地址和凭据的参数。 地址和凭据名称(当然,这些地址和凭据名称首先已部署在CPI安全材料上)在运行时应更改为

您能提供建议如何实现吗?

谢谢。

最好的问候

Timmy

付费偷看设置
发送
2条回答
clasier
1楼-- · 2020-08-22 20:32

您好 Timmy Becker

,您可以使用属性和Apache Simple表达式语言来实现。 您可以将$ {property.NameOfYourProperty}写入适配器的字段。 然后,实际值将从Exchange属性中获取。

然后,您可以设置

有关简单表达式的更多信息: https://camel。 apache.org/manual/latest/simple-language.html

如何通过Groovy脚本设置属性: http://www.sapintegrationbasics.com/CPI_Groovy_Script_Examples

me_for_i
2楼-- · 2020-08-22 20:39
 

嗨Raffael,

感谢您的答复。 好主意。 不幸的是,CPI并不那么复杂。

在地址中输入属性时,不会将其解释为属性:

 [CAMEL] [IFLOW] [EXCEPTION]:org.apache.camel.FailedToCreateProducerException:无法为端点创建生产者:Endpoint [sftp://$%7Bproperty.ServerName%7D?autoCreate = true&bufferSize = 131072&connectTimeout = 10000&fileExist = 覆盖&maximumReconnectAttempts = 3&reconnectDelay = 1000&soTimeout = 300000&stepwise = true]。 原因:java.lang.IllegalArgumentException:必须指定主机,并且不能为空
   [CAMEL] [IFLOW] [CAUSE]:原因:java.lang.IllegalArgumentException:主机必须指定且不能为空

当您以凭证名称输入属性时,它在抱怨。 如果将属性创建为安全材料,则会部署该属性,但不会获取交换属性,而仅会在运行时使用安全材料条目。 所以它不会是动态的。

错误1:
 [CAMEL] [IFLOW] [ERROR]:集成流程失败。
   [CAMEL] [IFLOW] [EXCEPTION]:org.osgi.service.blueprint.container.ComponentDefinitionException:实例化类为null的bean Receiver_SFTP_configurator时出错
     [CAMEL] [IFLOW] [CAUSE]:原因:com.google.common.util.concurrent.UncheckedExecutionException:com.sap.it.nm.types.NodeManagerException:[CONTENT] [CONTENT_DEPLOY] [NoArtifactDecriptorFoundForArtifactName]:未找到工件描述符 用于artifactName $ {property.Credential}
       [CAMEL] [IFLOW] [CAUSE]:原因:com.sap.it.nm.types.NodeManagerException:[CONTENT] [CONTENT_DEPLOY] [NoArtifactDecriptorFoundForArtifactName]:未找到artifactName $ {property.Credential}的工件描述符
 

一周热门 更多>