CF2SAP Frequently Asked Questions

How many licenses do I need?

You need one CF2SAP license for each SAP server you want to connect to. Let’s say your organization has three SAP servers, one development, one QA and one production. Then you need three licenses: one for each SAP server. You can install the licenses on as many CF servers as you like, so if you run several CF sites and they all point to the same SAP host, you can use the same license on all of them.

Do I need a license to evaluate CF2SAP?

No, you can run CF2SAP on localhost or without a license. You’ll only need a license to run your CF2SAP pages on a remote server.

Am I allowed to redistribute CF2SAP?

Yes. Feel free to distribute CF2SAP as much as you like. You will need a license for each SAP server it connects to and you must agree to our terms and conditions, that’s all.

How does CF2SAP work?

CF2SAP consists of three layers:

  • Component Generator. This generates ‘proxy’ ColdFusion components which exactly mirror the chosen SAP function interface, as well as a CustomTag ‘wrapper’ and a test page for each component.
  • Build/Test Environment. A local ColdFusion web site for managing the build/test process. This is where you work as a developer, to build, test and manage your SAP-enabled ColdFusion components.
  • Run-time Libraries. Compiled CFCs containing common run-time code. This is what you deploy with your application.

CF2SAP uses the SAP Java Connector to run the various BAPIs and RFCs you chose to use in your application. It quickly generates code which reduces the number of lines YOU need to write to just a handful of statements.

Which jCo Version should I use?

Please use jCo version 3.0.

Why have you switched to jCo version 3.0?

SAP announced end of life for jCo 2.0 will be 31 March 2013, so we have responded with Version 3.0 of CF2SAP which supports jCo 3.0 and CF10.

This upgrade gives our customers confidence that CF2SAP continues to use a supported version of the jCo.

Although CF2SAP Version 3 required significant internal changes to allow it to work with jCo 3, externally there are no differences that existing users would notice. CF2SAP Version 3 components are 100% backward compatible with existing CF2SAP applications.

Why not just create a ColdFusion datasource and connect directly to the SAP database?

SAP does not allow external users or applications to connect directly to its underlying database. This could result in a breach of security or loss of data integrity and would probably make your system ‘not supported’ by SAP. In addition there are many thousands of tables in the SAP database and you may find it difficult to work out which ones to use. Some tables in the database cannot be read directly because the fields are packed or stored in unreadable 'internal' formats. Therefore all interactions with the SAP database should be moderated by the SAP application server. SAP provides BAPIs and RFCs for external developers to access SAP data via the SAP application server. CF2SAP works with these APIs.

Can I update SAP data via CF2SAP?

Yes, to the extent that SAP provides a BAPI or RFC that will update the data you want to update, and your login is authorized to update the data.

Fortunately SAP provides many BAPIs and RFCs which will allow you to create and update SAP data. This is the ‘correct’ way to go about updating data in SAP, as you can be sure that SAP has validated your inputs. Look for BAPIs with names like BAPI_PO_CREATE or BAPI_PO_MAINTAIN.

You can also update data by calling SAP transactions with BDC.

Does CF2SAP commit BAPI transactions?

Yes, CF2SAP has an option on every component to call BAPI_TRANSACTION_COMMIT immediately after posting an update. You can also make a separate call to BAPI_TRANSACTION_COMMIT, for example if you want to run several update BAPIs and commit them all at once.

Why not use SAP Netweaver?

CF2SAP is for web developers who need to interface with SAP but who prefer to use best of breed web development tools to create the user experience. You may also want to add SAP integration to an existing ColdFusion application, or simply use your existing ColdFusion skills to build the web site rather than learning Netweaver

We believe you will achieve the highest levels of productivity and most important, user satisfaction, using Adobe ColdFusion to develop the front end with CF2SAP to access SAP data.

How secure is CF2SAP?

C2SAP requires a SAP login and password to be passed to SAP on every function call . CF2SAP can only run functions which the user is authorized by SAP to use against SAP objects which they are authorised to access.

N.B. It’s important to secure the ColdFusion application adequately as you would with any web application and to encrypt passwords and sensitive data.

How reliable is CF2SAP?

CF2SAP is very stable and reliable. Clients are using it all day every day for critical business activities.

How fast is CF2SAP?

It’s amazingly fast. The factors which influence response times are the performance of the SAP server itself and network latency between the ColdFusion Server and the SAP Server. When SAP and CF are on the same LAN with adequately resourced servers performance is excellent.

Do I need to install any middleware or any additional software on my SAP server?

No. You need to ensure your SAP server settings allow RFC connections and your users are authorized to run RFCs. You need to open ports 3200 – 3399 on any network routing between the CF server and the SAP server. You need to install SAP jCo v 3.0 on your ColdFusion server. That’s it.

Does CF2SAP handle SAP “field conversion exits”?

“Conversion exits” are a kind of filtering that SAP applies when displaying or receiving data through the standard presentation layer, SAP GUI. For example Material Numbers, which have leading zeros in the SAP database, are represented with the leading zeros truncated in the GUI. In other cases, SAP may store a field in its German form and translate it into English (or whatever language the user logs in with) in the user interface. For example the unit of measure ‘D’ (Day) in English must be converted the German form ‘T’ (Tag).

These conversions are absent from data transferred via RFC. This can result in confusion unless the developer is aware of the need to pad or strip ‘numchar’ fields and convert some fields to/from the German langage language form.

CF2SAP has an option on all components to convert internal to external formats and vice-versa.

What if the SAP function I want to work with is not “remote-enabled”?

You have two options. Both will require someone with BASIS or ABAP skills.

  1. Change the SAP Function to make it remote enabled. This will require a change key from SAP, after which your modification will be flagged as a customer enhancement at your next SAP upgrade and reapplied.
  2. Create a remote-enabled ‘wrapper’ for the SAP function. This will be an exact copy of the function module, but the source code will simply contain a call to the non-remote-enabled SAP function, passing the exact same imports, exports and tables between them.

Can I use BDC?

“BDC” (Batch Data Conversion) is a very effective tool for updating SAP data using a form of keystroke replay to drive a SAP transaction.

The answer is 'yes'. SAP provides an RFC which you can use to call transactions with BDC. ABAP4_CALL_TRANSACTION. Knowledge of ABAP and SAP interfacing is recommended before you use this technique. Please contact us if you require assistance.

Note that BDCs are considered to be not as upgrade-proof as BAPIs and you should always check for available BAPIs before updating data via BDC.

What about caching?

CF2SAP provides an option to cache results from any SAP function. This is useful to minimise redundant calls to SAP for non-volatile data and improves performance over low-bandwidth connections.

Named cachesEach cached result set can be named, allowing you to store multiple caches based on the same function called with different parameters.

The caches are stored as XML files on the ColdFusion Server. Therefore they will persist after ColdFusion has been restarted. This approach also saves memory, compared with, say caching in the CF Application scope.

An optional timeout setting can be used to force a cache to clear at intervals.

Can I save test data sets?

Yes. The test pages allow you to save both the inputs and outputs for a given RFC as a test data set.

This is very useful for regression testing SAP RFCs or simply experimenting with different options and seeing how the results are affected. This, combined with the SAP field conversion feature, makes CF2SAP an excellent alternative to the SAP Function Builder (SE37) for testing SAP functions.