Skip to Content
0

SAP HCI Cannot create Content Modifier External Parameter in Web UI

Oct 06, 2017 at 12:51 AM

897

avatar image

I am not able to create an External parameter for the Content modifier. The dropdown is not enabled.

I followed the URL External parameter not working HCI Web with a user who has the same issue. The recommendation was to create the external parameter in Eclipse and deploy that.

So I created this in Eclipse:

Then I click on the Externalized Parameters tab (in between the Console and the Remote Systems tab).

Then I sync with the Editor, add the values, and then save the parameters.

I execute checks for the flow and make sure everything looks good. Then I deploy the integration content from Eclipse. I check the deployment in the console and tasks view and I get no errors:

However, when I create the external parameter for the Content modifier in Eclipse and deploy, I still do not see the external parameter that I created in Eclipse in the Web UI.

10 |10000 characters needed characters left characters exceeded
* Please Login or Register to Answer, Follow or Comment.

4 Answers

Best Answer
Francois Maass May 30 at 12:01 PM
0

Hi All

For those that still come across this post, it is possible without the need to classify the parameter as an External Parameter. In the content modifier, simply set the type to Expression and set the value to the same name as your external parameter {{extName}}.

You can use the same concept in the message body if you want to access the parameter by simply using {{extName}}. This will dynamically replace the value.

To access the externalized parameters via scripts, you can use the Camel SimpleBuilder function to evaluate the parameter name and return it as a String:

import org.apache.camel.Exchange;
import org.apache.camel.builder.SimpleBuilder;

def Message processData(Message message) {

    def Exchange ex = message.exchange;
	def messageLog = messageLogFactory.getMessageLog(message);	
	if(messageLog != null){	
		messageLog.setStringProperty( "Property" , SimpleBuilder.simple('{{sftp.directory}}').evaluate(ex, String) );
	}
	}
	return message;
}

Show 1 Share
10 |10000 characters needed characters left characters exceeded

Looks like this will work. But I still do not understand why SAP couldn't simply add this feature in the WebUI in such a long time.

0
Sriprasad Shivaram Bhat
Oct 11, 2017 at 07:22 AM
1

Hello Jay,

As per understanding externalizing the parameters directly from content modifier [ WEBUI ] is not yet available ( Although there is a button externalize appearing in right corner of Content Modifier ) for Integration Project created in WEBUI, as a work around you can create a project in Eclipse and externalize the required parameter and import it to webui.

I am able to view the External Parameter Created which got created in Eclipse in WEBUI without any issues ( from Content Modifier perspective it is not editable & grayed out in WEBUI).

Screenshot from WEBUI content modifier:

Regards,

Sriprasad Shivaram Bhat


Show 2 Share
10 |10000 characters needed characters left characters exceeded

Hi Sriprasad,

Thanks for your answer. I am able to create the content modifier external parameter in Eclipse - that was never the issue. The problem was when you try to deploy this to the tenant. If there is an EXISTING flow, then there is actually a bug in the deployment from Eclipse to the tenant - which we confirmed with SAP technical support on a live Skype session. The work around is to actually DELETE the flow from the HCI tenant. Then export the project from Eclipse as a zip file - and NOT deploy directly to the tenant. Then in the package view in the Web UI, you can import this "new" zip exported from Eclipse into the package. Then it works fine.

So basically, the external parameters do not move over correctly from Eclipse if there is an existing flow in the tenant. The bug is in the deployment of the parameters.prop and parameters.propdef file. If you delete the flow from the package in Web UI, and then deploy from Eclipse (instead of exporting the zip and importing using the Web UI), then the flow is NOT connected to the package. I think SAP should have the option in Eclipse to tie the flow to a package explicitly or SAP should provide a way from the Web UI to bring in an existing flow that is already deployed to the system that is not tied to a package and have this tied to a package.

I am planning to write a BLOG about this - as I spent many hours trying to figure this out and I even tried to bring up the flow xml in an editor and backdoor the content modifier external parameter - which also did not work since I had the existing flow in the tenant. It would have worked had I deleted the flow on the tenant.

Thanks,

Jay

0

Hi Jay,

Currently, the only way you can see the External Parameters in WEBUI (greyed out) is the above way: i.e. Export/Import the iFlow from WEBUI to Eclipse, define external parameters in Eclipse, delete the iFlow in WEBUI and export/import the iflow from Eclipse to WEBUI.
As mentioned above, the external parameter features in WEBUI are still in development.

Best regards,
Pierre.

0
Eng Swee Yeoh
Oct 11, 2017 at 07:01 AM
0

Hi Jay

External parameter in Content Modifier on WebUI does not work for me too.

As to your Eclipse changes, deploying them does not mean that it will appear in WebUI. Nothing you deploy from Eclipse will appear in WebUI - it's unfortunate that it's that way, but that's the way things are. To "sync" your changes between WebUI and Eclipse, you need to use the workaround mentioned in my blog below:-

HCI: Transferring Integration Package Content from WebUI to Eclipse and back

Regards

Eng Swee

Show 3 Share
10 |10000 characters needed characters left characters exceeded

Hi Eng Swee,

Thanks for your response. We did confirm with SAP technical support that this was a bug with the deployment from Eclipse if there is an existing flow on the tenant - the parameters.prop and parameters.propdef do not get updated correctly. I have written out the full response on the reply to Sriprasad's note following this one with exact steps on the work around - which does work. I will add a BLOG about it - but at least the issue and workaround is covered in this post.

I appreciate your help and look forward to your BLOGs.

Thanks,

Jay

0

Hi Eng Swee - actually if you do deploy from Eclipse, the flow does make it to the tenant - but it does not get tied to a package. Basically, the project in Eclipse has no idea about HCI packages. So you have to export from Eclipse as a ZIP and then import into the package in Web UI to tie this to a package. And with the bug, you should actually delete the flow from the package in Web UI first and then import the zip exported from Eclipse as the work around.

Thanks,

Jay

0

Hi Jay

Let's be very clear about the fundamentals here with regards to the following two items:-

  • Design time artifact
  • Runtime/Deployed artifact

Web UI (Design) section and Eclipse deals with designing design time artifacts. If you design in Eclipse, and deploy from Eclipse, only the Deployed artifact is changed in the tenant, and this is only reflected in Web UI - Monitoring section. Deployment from Eclipse DO NOT update the design time artifact in Web UI - Design section.

If you do not get this fundamentals, you can test this out by creating an arbitrary project in Eclipse and deploying it into the tenant. If you go to Web UI, you cannot see the project in Design (i.e. design time artifact is not transferred), and you can only see the deployed integration flow in Monitoring (i.e. deployed artifact is transferred).

An analogy to this is a Java development,

  • Java source code - design time artifact
  • Java compiled library (JAR file) - runtime artifact

You do not deploy a design time artifact into a server to execute it, you deploy the runtime artifact.

If you get this, then you can make sense of why you had to do what you had to do. Hope this helps.

Regards

Eng Swee

0
Sandhya Tai Apr 05 at 02:42 PM
0

Hi All,

Is there any possibility to create custom adapter module in Eclipse for SAP CPI scenario.

Regards,

Sandhya.

Show 3 Share
10 |10000 characters needed characters left characters exceeded

Hello Sandhya,

Yes its possible and please create a separate thread for your question so that other community members can search it easily in future if required.

Regards,

Sriprasad Shivaram Bhat

0
Former Member
Sriprasad Shivaram Bhat

Hi SriPrasad,

Thanks for the response.

I have raised thread for this query which is as below.

If it is really (Custom module implementation) possible, please mention what are the steps required to implement custom module.

https://answers.sap.com/questions/470409/sftp-pick-multiple-files-and-zip-them-through-sap.html

Regards,

Sandhya.

0

Hi SriPrasad,

Thanks for the response.

I have raised thread for this query which is as below. Could you please provide your valuable suggestions.

If it is really possible, please mention what are the steps required to implement custom module.

https://answers.sap.com/questions/470409/sftp-pick-multiple-files-and-zip-them-through-sap.html

Regards,

Sandhya.

0