sap-tutorials / Tutorials

Tutorials on sap.com
https://developers.sap.com/tutorial-navigator.html
Creative Commons Attribution 4.0 International
727 stars 774 forks source link

CI Best Practices Guide – SAPUI5/SAP Fiori on ABAP Front-End Server #2191

Closed cschuff closed 6 years ago

cschuff commented 6 years ago

Hi guyes,

thanks for the great tutorial. It left me with the following questions which I think others might also have:

Nevertheless, the upload can be triggered automatically immediately after the CI build.

Triggered immediately after a successful CI build for one change, the build scheduler automatically creates a new, individual transport request in the ABAP development system, uploads the application to the ABAP system and releases the transport request.

How is that automatic trigger working? What is 'the build scheduler'?

We already have a pipeline like this in place for quite a while. The most challenging part indeed is making the way into SAP systems (be it Netweaver Java or ABAP). Any notes on how to manage this process would be much appreciated. Adding a section for NW Java would also be a great improvement...

Thanks considering.

BR Chris

wolframK commented 6 years ago

Hi Chris,

sorry for the very late reply. The build scheduler, which we use in the guide as an example, is Jenkins, but the principle works with any CI server. In our case, we trigger the upload of the UI5 application as second build step right after the "build" creating the zip file. We are currently working on an alternative implementation that replaces RFC (which is often not usable by means of security policies) by OData. Also, a ready-to-use pipeline for Jenkins 2 as part of our Project "Piper" https://sap.github.io/jenkins-library/ is in work.

Hope that helps you, Wolfram

cschuff commented 6 years ago

Hi Wolfram,

so the actual upload of the application into ABAP is done with a RFC? Is that a standard function? Can you elaborate on that a little more and concrete or may be even give a code example? How does that apply to Netweaver Java/NWDI?

In piper I can only find a neoDeploy step. How can piper help with uploading to on-prem ABAP/Java?

Thanks a lot.

BR Chris

wolframK commented 6 years ago

Hi Chris,

RFC (Remote Function Call) is a standard protocol supported by ABAP systems. In our case, we use it concretely for creation and releasing Transport requests and for uploading a zipped UI5 application to the server. Code examples can be found in the appendix of https://www.sap.com/developer/tutorials/ci-best-practices-fiori-abap.html (see Gruntfile_ABAP.js). In paragraphs 10, 11 and 12, there is a detailed description how to orchestrate the script using Jenkins (but you could use any CI server for that).

Netweaver Java/NWDI is a completely different thing. What is your concrete scenario?

In Project "Piper", we currently only support UI5/SAP Cloud Platform Neo. But UI5/ABAP is currently in work and will follow soon.

Best regards, Wolfram

cschuff commented 6 years ago

So you are using /UI5/UI5_REPOSITORY_LOAD_HTTP! That was the information I was looking for. Links to the Appendix in the text will be helpful I guess :)

My concrete scenario is to automate deployment of SAPUI5 applications into NW Java. We currently use the di_cmd_tools CLI-Tools to submit applications into DTR which is quite frankly a pain... Is there any other way of packaging/deploying UI5 apps into NW Java?

BR Chris

wolframK commented 6 years ago

Hi Chris,

could you describe your process in a little bit more detail? How is the submit of changes into DTR related to the deployment to NW Java? Do you use other tools like CBS, CMS?

Thanks, Wolfram

cschuff commented 6 years ago

We are targeting SAP MII. We are using git repositories for our code along with a gulpjs build. We just use NWDI resp. DTR as a vehicle to get our SAPUI5 code into the SAP system. Main reason to do this is to keep UI code in the same SC/Transport as MII Transactions.

We have a release build job that packages the application, empties the corresponding DTR repo, re-adds the code, submits and immediately activates an activity with this changes via CBS (done via batch script, di_cmd_tools).

Any alternatives to this process you could think of?

Sorry for still being a complete noob on NWDI and SAP backend systems. I'm just a web developer ;)

Thanks, Chris

DanielKordes commented 6 years ago

Hi Chris,

I'm afraid this is a bit mre complex. As far as I know the Best Practices Guide it is for UI5 applications running on AS ABAP backend. This is completely different from UI5 applciations running on NW AS JAVA. Maybe the following 2 SAP Notes can help you to automate the build and deploy process, 1223957 - Usage of NetWeaver Packaging Tool (https://launchpad.support.sap.com/#/notes/1223957/E) and 1715441 - Deploy/Undeploy/Force Redeploy WAR/EAR/RAR/SDA/SCA files on SAP AS JAVA (https://launchpad.support.sap.com/#/notes/0001715441/E).

When you wrote about MII, I was wondering whether there isn't already a transport/deployment process in place for MII using CMS. CMS (Change Management Service) of NWDI is a pure JAVA based transport tool. In addition, CMS can also be integrated with CTS+ (enhanced Change and Transport System) where the transport/deployment to target systems like QAS and PROD are executed in the ABAP transport system.

Best regards, Daniel

thecodester commented 6 years ago

Looks like this issue has been resolved. Feel free to continue the discussion in the SAP Community or at https://answers.sap.com/index.html.