Replies: 17 comments
|
The SAP LinuxLab Open-Source Initiative governance board will discuss this at our next meeting. Speaking personally... There are no roadmaps created within this initiative for dependencies from SAP, and no planned contingencies for dependencies that have suddenly been discontinued by SAP (in this case, @bsrdjan was the sole developer). There are no other alternatives to PyRFC, it was the only Python binding for NWRFC SDK C. This sudden discontinuation has also impacted the bindings for Node.js node-rfc and Go gorfc. Other legacy bindings for Ruby and Perl etc are long dead. This sudden discontinuation will also impact other upper-level projects such as sapcli. The PyRFC project would be near impossible for any non-SAP employee to takeover, as the changes to each Patch of the NWRFC SDK C code are documented at a high-level only (e.g. SAP Note 3481057 - SAP NetWeaver RFC SDK 7.50 -- Patch Level 14) and the documentation itself was always non-standard by not being on help.sap.com, see SAP Support Portal - Products - Connectors - SAP NetWeaver Remote Function Call (RFC) Software Development Kit (SDK). A developer who is familiar with ABAP, C and Python would be required. The last version of PyRFC is version Alternatives with limited functionality would be:
Hard decisions lie ahead. @rainerleber FYI
|
|
As the former |
|
In my modest opinion, if SAP cannot provide support, best option is to simply code the NW RFC SDK in c, like years ago. In fact in our servers gcc compilers are available. We can always call binaries from shell in ansible. |
|
@joanba68 Within our context in the automation community, specifically Ansible, where your thought process leads.... is some Ansible Module that:
I do not see that happening, least of all because we don't have someone who actively codes in C. The above logic isn't the best either, when compared to PyRFC that was a binding from Python > C directly, and supported by SAP. If you want to create a project under SLL-OSI with C for creating an expansion of If you want to fork PyRFC under SLL-OSI GH Org, that could also be discussed. But not sure why we'd do that as there is a call for maintainers in the SAP GH Org. |
|
I think is really easy to simply code the RFC call to STC01 trans. in C, I've done it many times in the past and it's directly supported by SAP. Also easy to simply call a shell in ansible and run the program. Keep it simple... |
|
PyRFC is dead, reference to latest comment SAP-archive/PyRFC#372 (comment) and pasted below for ease..... Content copied from original GH Issue in SAP-archive GH OrgFor others future reference.....
In theory, the
No further discussion, calls underlying node-rfc-library.
This was reviewed in |
|
@kksat Is the "HTTP wrapper" you are referring to the SOAP RFC HTTP handler? It seems SAP just killed all the easy integration options. I wonder if they will provide any alternative solutions. (or create copy of the SOAP http handler on an alternative URL. But I'm sure they will soon remove the code too :-( ) |
|
@redge76 @amarvin @spammik Please see my comment above and pasted in the origin GH Issue for PyRFC. It is possible to continue usage with a supportable/secure method, but requires re-development and testing effort. Breakdown of theory is below....
To my knowledge, this would be a FOAK for any Ansible project to import PythonMonkey. Uncharted territory. But SAP will continue to release the Node.js Module @sap-rfc/node-rfc-library . |
Thanks for the detailed breakdown. Unfortunately, at this moment it looks like the only realistic way to bridge Python with RFC would indeed be through PythonMonkey and the Node RFC library or switching to Javascript – but there’s a major blocker: Even though I have an S-USER and access to RBSC, I don’t see SAP NODE RFC available under licenses in our company account. That probably means our contract doesn’t include entitlement to this package. In practice, that makes the approach unusable for many teams, because every customer/developer would need RBSC entitlement to even download the module. Compared to the original PyRFC (which was open and downloadable for everyone with the SDK), this new setup introduces a licensing barrier and effectively kills the usability in community/open-source scenarios. Unless SAP changes the distribution model or provides a public way to obtain the library, the solution loses a lot of its practical value. |
|
@spammik Suggest you re-read what I requested clarification on. The library behind RBSC, is an open-source license and could be copied/re-distributed. |
Got it, I re-read your comment and now I understand what you meant – the BSD license technically allows redistribution once someone has access to the package. I’m wondering – who is supposed to actually redistribute it in practice? You personally? |
|
@jdsricardo We are open source project and we cannot include paid solution. Your link points to example repo, but actual connector is on separate page with pricetag of 39$. |
|
You’re right, sorry about that. I misunderstood the scope of the project and shouldn’t have linked to a paid solution here. I’ve removed the comment. Thanks for the clarification. |
|
As stated, the initiative is a Community First model - same as Linux itself. It's not an Open Core model etc. PyRFC was Python bindings to C of the NW RFC SDK, so I am unsure what the difference of the referenced project was anyway @jdsricardo |
|
Coming at this from a different angle — and declaring an interest up front: I work on what I'm about to describe, so please treat it as a data point rather than a recommendation. Every route in this thread has ended at the same place: a closed binary that cannot be redistributed, reached either through an S-user download or through RBSC. SAP named that blocker themselves when they archived the project:
We took the second half of that literally. Instead of binding to Two things I would rather state in the first half of this comment than have someone discover in the second. The licence is BUSL 1.1, which is not OSI open source. It is free — there is no price tag, and production use is permitted under the Additional Use Grant; what it forbids is offering it to third parties on a hosted or embedded basis. Given the Community First model stated above, that may well disqualify it as a dependency for this collection, and that is your call rather than mine. I am posting it because the thread is asking what exists, not to propose it as the answer. And on the question that ought to follow a reimplementation of someone else's protocol: the specification is derived solely from our own captures of SAP's library on the wire. It comes from observed bytes, never from reading another implementation's source. Since anyone can claim compatibility, there is a script that settles it by observation instead. One file of ordinary PyRFC code, run twice against the same ABAP system — once under SAP's real PyRFC 3.3.1, built from the yanked sdist against the actual SDK, and once under ours — with the two outputs diffed. At the moment that diff is empty across 33 lines. The write-up has the recordings and the code: https://erpl.io/blog/drop-in-replacement-for-archived-pyrfc/ Limitations, honestly:
We developed with the ABAP cloud developer trial and not a production box with twenty years of custom function modules, an unusual codepage and SNC required. Would be happy to start a dicussion, if anybody wants to try it out and has opinions. Happy to connect |
|
We need to consolidate, there is too much sprawl in this domain to discuss meaningfully. Replacement of PyRFC options (no particular order)
Relation to AnsibleWe look towards Python because of Ansible, and this GH Discussion is underneath the The structure required for usage of RFCs in Ansible:
Reminder 1: that the SAP LinuxLab Open-Source Initiative will only ever permit Apache 2.0 license, are model is community-first and allow corporations to build their distinct value on top. We will not tolerate any suggestions of different licences with Copyleft issues (GPL etc) or Business restrictions (BUSL etc). Reminder 2: In reality, the SLL-OSI is not restricted to any type of code or project. For example, if abapGit or sapcli (@jfilak's code also has some reliance on PyRFC, but leverages ADT) wanted to move underneath the initiative, those projects could. Although the abapGit ecosystem that @larshp built would swamp the SLL-OSI and we shouldn't touch something that is awesome in it's own right - I'm merely stating this for clarity of anyone that reads this in the future, that the community is welcome to append new projects into SLL-OSI so long as a creator/maintainer steps up to keep the work alive. |
Uh oh!
There was an error while loading. Please reload this page.
Summary
Just got information ( SAP-archive/PyRFC#372 ) that pyrfc requirement won't have new releases as current people is focusing on another priorities. We have some developments based on this collection and we need to understand what will be the roadmap. Any replacement of pyrfc ? Is there any other alternative from ansible to run SAP related tasks ?
Issue Type
Feature Idea
Component Name
pyrfc
Additional Information
Code of Conduct
All reactions