Quantcast
Channel: SCN : All Content - SAP Gateway
Viewing all 2823 articles
Browse latest View live

NW 7.4 Gateway Components missing

$
0
0

I've installed a NW 7.4 ABAP Stack, planning to use the Gateway Foundation and Fiori SAPUI5 components to experiment with mobile.

 

When I go to SICF to activate /sap/opu/sdata, it is not there.  Instead, there is /sap/opu/odata & /sap/opu/utils.  Are there additional Gateway 2.0 components to add to a NW 7.4 SP08 installation?  I expected it to all be in there.

 

I'm using the 2011 pdf for "Installing and Configuring SAP NW Gateway 2.0".  Is it the doc that is outdated?

 

nw74.jpg


Odata to tree SAPUI5

$
0
0

Hello everyone,

I have a requirement to display the company hierarchy in SAPUI5 from SAP back end, in addition the sub items should be lazy loaded by calling the odata service because of the performance issues, i.e only when the user clicks on the expand the sub items will be loaded,...

 

So could you please give me some hints or idea on how the model Odata(NW gateway) and also  the binding to a TreeTable (SAPUI5).

 

Best Regards

Mohamed

Success/Error messages in OData Service from ECC

$
0
0

Hi Team,

 

     I want to return messages which are coming from ECC to Front end with error type and description.

          1.I'm using class - /iwbep/if_message_container to return message, even then it is not showing any response to front end for type 'S' Success message.

          2. For Query operation (GetEntitySet method) - Return messages are not showing any response in Rest Client for return type 'E' , but return messages are coming from ECC.

 

Please suggest any better way to send response to front end.


Regards,

Sathish.

How to create Odata service for an RFC having a table as import parameter in SAP Netweaver gateway

$
0
0

Hi,

 

I am trying to create OData service for an RFC which is having table as an import parameter.

 

So the entire table needs to be populated via the query URL.

 

But when table parameter is selected, it creates individual Entity Types for each table. So it cannot be used in a single entity Set and hence cannot be mapped in a single go to the RFC.

 

How can this be achieved? Please help.

 

Regards,

 

Achu M K

Disable Conversion Exits in Gateway

$
0
0

Hi Guys,

 

is it possible to disable the conversion exits of the properties of an entity?

 

Thanks a lot.

Nils

How to use filter with

$
0
0

Hi to all,

 

I have created OData service endpoint, using the below linked approach,

 

OData producer using Apache Olingo with MySQL, JPA & Tomcat web server

 

I got Odata service and am able to list all the data from database.

 

Now,

 

I want to list the record based on some conditions like where  Name1 = "test"

 

Pls help me on this ....

 

FYI.,

am sharing the data format which I am getting from that Service,

 

http://localhost:8080/Customer_Reg/custlist.svc/CustGeneralDatas()/?$format=json

 

Output:

 

{"d":{"results":[{"__metadata":{"id":"http://localhost:8080/Customer_Reg/custlist.svc/CustGeneralDatas('1')","uri":"http://localhost:8080/Customer_Reg/custlist.svc/CustGeneralDatas('1')","type":"Customer_Reg.CustGeneralData"},"Aenam":null,"Anred":"2","Cin":null,"City1":"delhi","City2":"98","Ernam":null,"Ersda":null,"Kunnr":"1","Laeda":null,"Land1":null,"Mcod1":"3","Name1":"mahie","Name2":"5","Panno":null,"PoBox":"6","Pstlz":"9","Regio":null,"Smtp_addr":"mahi@gmail.vom","StrSuppl1":"7","StrSuppl2":"7","Stras":"6","TelNumber":"9738285552","Telf1":null,"Telfx":null,"Telx1":null,"Tin":null},

 

{"__metadata":{"id":"http://localhost:8080/Customer_Reg/custlist.svc/CustGeneralDatas('2')","uri":"http://localhost:8080/Customer_Reg/custlist.svc/CustGeneralDatas('2')","type":"Customer_Reg.CustGeneralData"},"Aenam":null,"Anred":"7","Cin":null,"City1":"bangalore","City2":null,"Ernam":null,"Ersda":null,"Kunnr":"2","Laeda":null,"Land1":null,"Mcod1":"7","Name1":"itenz","Name2":"8","Panno":null,"PoBox":"09","Pstlz":null,"Regio":null,"Smtp_addr":"test@ted.com","StrSuppl1":"0","StrSuppl2":"0","Stras":"9","TelNumber":"0989745984","Telf1":null,"Telfx":null,"Telx1":null,"Tin":null},

 

{"__metadata":{"id":"http://localhost:8080/Customer_Reg/custlist.svc/CustGeneralDatas('6')","uri":"http://localhost:8080/Customer_Reg/custlist.svc/CustGeneralDatas('6')","type":"Customer_Reg.CustGeneralData"},"Aenam":null,"Anred":"tf","Cin":null,"City1":"test","City2":null,"Ernam":null,"Ersda":null,"Kunnr":"6","Laeda":null,"Land1":null,"Mcod1":"test","Name1":"test","Name2":"test","Panno":null,"PoBox":"test","Pstlz":null,"Regio":null,"Smtp_addr":"test","StrSuppl1":"test","StrSuppl2":"test","Stras":"test","TelNumber":"test","Telf1":null,"Telfx":null,"Telx1":null,"Tin":null}]}}

 

Tags edited by: Jitendra Kansal (Moderator)

Prevent GET_EXPANDED_ENTITYSET from calling multiple time?

$
0
0

I have a OData Gateway Service with nested entities (say Entity A can be expanded with Entities B ;navigation properties "nv" ).

Now I redefined GET_EXPANDED_ENTITYSET and call in there a method that fills the complete return structure (including the expanded entities).

i have written call to call RFC that will provide me data for A and B.


A= Sales Order

B= Item Data



Sales_Order_Header_Item_inline.JPG

 


i konw that structure of the output entity set should have a field with Name same as Navigation Property Name.

i also kow that i need to append the Navigation Property Name in exporting parameter ET_EXPANDED_TECH_CLAUSES , which will tell the gate way framework that the child entity has already been expanded and there is no need to call the child entity set.



Now Problem is that GET_EXPANDED_ENTITYSET is called multiple time and so is my RFC. i am getting all required data in first call.

Prevent GET_EXPANDED_ENTITYSET  from calling multiple time.

OData Channel API: Association to an entity in a different service?

$
0
0

Hello,

 

I'm in GW 2.0 SP 6 and using the OData Channel API to develop a service manually. I'm trying to understand the options for modularization and cross-system integration using associations.

 

Suppose I have two entities and I want to create a associations (ideally, two-way) between them.

 

Now let's look at two cases:

 

1) Both entities reside in the same system but in different services

 

From what I have read in the documentation, I understand I can include the model of one service in the other service (in the model provider class) and then create associations between the entities.

 

Is any detailed documentation (tutorials, how-tos) available for this? This seems like a fairly important feature for entity reuse and service modularization to me.

 

2) One entity resides in an ABAP system and one entity comes from an OData service in a remote (could be non-ABAP) system

 

Example: I want to create an association between my entity and an entity that is exposed by a cloud-based application (could be controlled by somebody else).

 

I understand that OData per se supports links to remote entities, but does the OData Channel API in Gateway support it, too? Do you have any points to documentation (tutorials, how-tos) on how to do this?

 

Thanks,


Thorsten


How to create a custom data provider for Task Gateway

$
0
0

Implementing a custom provider for Task Gateway

 

The Task Consumption Model in Gateway is a harmonized task representation defined by SAP and exposed by SAP NetWeaver Gateway as a restful OData service.

To enable third-party task engines to provision their tasks within this harmonized inbox (Unified Inbox), SAP NetWeaver Gateway provides an extensibility mechanism for adding additional task providers.

Fig1.jpg

 

 

Figure 1 : Task Gateway architecture

 

The Unified Inbox application can be used together with Task Gateway to view tasks. In this post I will explain how to use Unified Inbox with a custom provider for Task Gateway.

To create a new Task Gateway provider, the following steps must be performed .

 

Note: As a prerequisite, the component IW_PGW (SP03 or higher) must be installed in the SAP NetWeaver Gateway system in order to implement Task Gateway custom provider.


Step 1: Create a new provider (software version)

Step 2: Implement data retrieval code for the new provider

Step 3: Configure the new provider

Step 4: Consume the Task Gateway service with the new provider

 

Step 1: Create a new provider (software version)

In the view "Create a new provider" in view /IWFND/V_COCCOL open the view in transaction SM30 and click ‘Maintain’. Add a new entry with type Software Version for “Instance Manager”. The new software version is just a string to enable unique identification of the new provider.

Fig4.jpg

 

Step 2: Implement data retrieval code for the new provider

The Task Gateway framework extracts data for all configured providers via the task façade (implementations of abstract class /IWPGW/CL_TGW_TASK_FACADE_ABS).


Create a provider class that inherits from abstract class /IWPGW/CL_TGW_TASK_FACADE_ABS.

(Note: the class has to be final or it will not be instantiated.)


Depending on the support package version of the IW_PGW component, you have to redefine particular methods. If no actual functionality could be provided for a method, an empty implementation needs to be created. Without the creation of an empty implementation, the provider class cannot be activated.


Three different types of methods exist: Query, Read, Action

Query - extract a multiple entries of data item from your data source

  • /IWPGW/IF_TGW_TASK_FACADE~QUERY_TASKS
    • Exporting parameter:

                         ET_TASKS (Type /IWPGW/IF_TGW_TYPES=>TT_TASKS)

    • You need to fill the et_tasks table type with the list of tasks from the data provider.
  • /IWPGW/IF_TGW_TASK_FACADE~QUERY_TASK_ATTACHMENTS - extract all attachments and map to AttachmentCollection structure
  • /IWPGW/IF_TGW_TASK_FACADE~QUERY_TASK_COMMENTS - extract all comments and map to CommentsCollection
  • /IWPGW/IF_TGW_TASK_FACADE~QUERY_TASK_POSSIBLE_AGENTS - extract all agents of the organization that can get the task and map into PossibleAgentsCollection
  • /IWPGW/IF_TGW_TASK_FACADE~QUERY_TASK_POTENTIAL_OWNERS - extract a list of approvers assigned to the task and map these to PotentialOwnersCollection
  • /IWPGW/IF_TGW_TASK_FACADE~QUERY_TASK_PROCESS_LOGS – logging list for the task
  • /IWPGW/IF_TGW_TASK_FACADE~QUERY_SCENARIO_TASK_COUNT – extract number of tasks/scenarios per TaskID
  • /IWPGW/IF_TGW_TASK_FACADE~QUERY_TASK_DEFINITIONS – extract source data task definition

Interfaces to the abstract class have been added for for additional features in higher SPs providing methods like

  • /IWPGW/IF_TGW_TASK_FACADE_V2~QUERY_CUSTOM_ATTR_DEFINITIONS – get custom attributes definition list
  • /IWPGW/IF_TGW_TASK_FACADE_V2~QUERY_CUSTOM_ATTRIBUTES – get custom attributes data list

Read - extracts a single item by distinct key (instance id or instance id and additional data)

  • /IWPGW/IF_TGW_TASK_FACADE~READ_TASK
    • Parameters: IV_INSTANCE_ID, ES_TASK
    • Instance ID can be a unique identifier of a task.
  • /IWPGW/IF_TGW_TASK_FACADE~READ_TASK_ATTACHMENT – extract specific attachment metadata
  • /IWPGW/IF_TGW_TASK_FACADE~READ_TASK_ATTACHMENT_STREAM – extract specific attachment data
  • /IWPGW/IF_TGW_TASK_FACADE~READ_TASK_COMMENT – extract specific comment data
  • IWPGW/IF_TGW_TASK_FACADE~READ_TASK_DEFINITION –  extract specific task id definition
  • /IWPGW/IF_TGW_TASK_FACADE~READ_TASK_DESCRIPTION – extract specific task description
  • /IWPGW/IF_TGW_TASK_FACADE~READ_SUBSTITUTE_PERSONAL – extract specific substitute data
  • /IWPGW/IF_TGW_TASK_FACADE~READ_TASK_POSSIBLE_AGENT – extract specific data for user in the same organization as the approver
  • /IWPGW/IF_TGW_TASK_FACADE~READ_TASK_POTENTIAL_OWNER – extract specific data on approver
  • /IWPGW/IF_TGW_TASK_FACADE~READ_TASK_PROCESS_LOG – extract specific log details
  • /IWPGW/IF_TGW_TASK_FACADE~READ_TASK_UI_EXECUTION – create a URL to SAPUI for approval of task
  • /IWPGW/IF_TGW_USER_DET_FACADE~READ_USER_DETAILS_BY_CONTEXT – extract user details for specified user

Interfaces to the abstract class have been added for additional features in higher SPs providing methods like

  • /IWPGW/IF_TGW_TASK_FACADE_V2~READ_CUSTOM_ATTR_DEFINITION – get a specific custom attribute definition
  • /IWPGW/IF_TGW_TASK_FACADE_V2~READ_CUSTOM_ATTRIBUTE – get a specific custom attribute data
  • /IWPGW/IF_TGW_TASK_FACADE_V2~READ_TASK_STREAM – get task icon stream data

Action – change/update/create a task related feature (Examples: Approve Task, Change Priority)

  • /IWPGW/IF_TGW_TASK_FACADE~CLAIM_TASK
    • Parameters: IV_INSTANCE_ID, IV_COMMENTS, ES_TAS
    • With the instance ID and the action code (use the interface /IWPGW/IF_TGW_SRV_CONSTANT) you can handle the claim action, which is triggered by clicking ‘Claim’ in the Unified Inbox)
  • /IWPGW/IF_TGW_TASK_FACADE~RELEASE_TASK
    • Similar to the claim action.
  • /IWPGW/IF_TGW_TASK_FACADE~APPLY_DECISION_ON_TASK – apply decision to task, for example, approve
  • /IWPGW/IF_TGW_TASK_FACADE~APPLY_PRIORITY_ON_TASK – change task priority
  • /IWPGW/IF_TGW_TASK_FACADE~FORWARD_TASK – forward task to another user
  • /IWPGW/IF_TGW_TASK_FACADE~CREATE_SUBSTITUTE_PERSONAL – create a substitute that can take action on the task
  • /IWPGW/IF_TGW_TASK_FACADE~UPDATE_SUBSTITUTE_PERSONAL – update status of substitute(activate / deactivate)
  • /IWPGW/IF_TGW_TASK_FACADE~DELETE_SUBSTITUTE_PERSONAL – remove substitution
  • /IWPGW/IF_TGW_TASK_FACADE~GET_TASK_DECISION_OPTIONS – get available decisions for task
  • /IWPGW/IF_TGW_TASK_FACADE~CREATE_TASK_ATTACHMENT – create an attachment on the BO of the task
  • /IWPGW/IF_TGW_TASK_FACADE~DELETE_TASK_ATTACHMENT – remove attachments from the Task BO

 

Note :

  1. To map the status and priority fields, use the table /iwpgw/i_tgw_flm
  2. To pass filter, order and paging information within the query methods, use attributes MT_FILTER_SELECT_OPTIONS, MT_ORDER and MS_PAGING.
  3. You might want to pay attention to method /IWPGW/IF_TGW_TASK_FACADE~GET_RETURN_TAB, as this method is been called from the Task Gateway framework to retrieve potential messages been created within a provider implementation. So you need to fill either underlying message table or redefine method /IWPGW/IF_TGW_TASK_FACADE~GET_RETURN_TAB.
  4. You might want to pay attention to 'supports' information provided within complex type 'supports' structure for particular entities allowing the consumer to not show particular functionalities avoiding later error situations like hiding action button for example in case an action is not allowed.

 

 

RFC / Web service

If your data does not reside on the same system as Task Gateway, you can use either RFCs or Web services to manipulate the data. RFCs or Web services can be called directly within each method or alternatively you can use a backend operational proxy.

 

Additional information

Unified Inbox features are dependent on the support package version of the IW_PGW component. Some features such as forward, comment, substitute are only available as of the higher support packages.

Recommendation: use the latest available version of SAP NetWeaver Gateway 2.0 (latest support package).

In case you started implementation of provider class before SAP NetWeaver Gateway 2.0 SP10, please consider SAP Notes 2015793, 2081706 and 2098740.


Before proceeding with the implementation, you are recommended to familiarize yourself with the Task Consumption Model and the features offered by the Unified Inbox.

 

Helpful links:

Task Gateway service:

http://help.sap.com/saphelp_gateway20sp08/helpdata/en/dc/272f5b5a3b401481a71a954f92a413/content.htm


Unified Inbox: http://help.sap.com/saphelp_gateway20sp08/helpdata/en/12/8ca5519b12df0de10000000a441470/content.htm

 

For the latest SAP Gateway 2.0 documentation, seehttp://help.sap.com/nwgateway. Under Application Help, you can find links not only to the current documentation, but also to the documentation for the two preceding Support Packages.

You can find the Task Gateway documentation under SAP Gateway -> SAP Gateway Content Guide -> SAP Gateway Supported OData Channel Scenarios -> Task Gateway.


To use SAP Business Workflow

Task Gateway provides a default connector.

List of backend operational proxies (RFCs are called via BOPs) created:

'/IWPGW/WF_TGW_QUERY_TASKS',
'/IWPGW/WF_TGW_TASK_DET_QUE',
'/IWPGW/WF_TGW_TASK_DET_REA',
'/IWPGW/CL_TGW_TASK_DEF_BOP',
'/IWPGW/WF_TGW_TASK_ACTION',
'/IWPGW/WF_TGW_TASK_ACTIONS',
'/IWPGW/WF_TGW_TASK_DEC_OPT',
'/IWPGW/WF_TGW_ATT_STRM_CRE',
'/IWPGW/WF_TGW_ATT_STRM_DEL',
'/IWPGW/WF_TGW_SUBS_GET',
'/IWPGW/WF_TGW_SUBS_UPD',
'/IWPGW/WF_TGW_SUBS_DEL',
'/IWPGW/WF_TGW_USER_GETLIST',
'/IWPGW/WF_TGW_USER_GET_DET',
'/IWPGW/WF_TGW_QUERY_OUTBOX',
'/IWPGW/WF_TGW_SCN_COUNT',
'/IWPGW/WF_TGW_USER_DETAILS',
'/IWPGW/WF_TGW_EXPAND',

 

Depending on the system alias maintained, the call is routed to the correct system.

 

 

Sample scenario

View tasks that come from a newly created data source in a remote system.

  • Create a new table in your provider system

In SE11, create a new table with these fields.

Field Name

Type

Description

Work Item Identifier

ID

Identifier

Work Item Description

String

 

Status

String

‘READY’, ‘RESERVED’,IN_PROGRESS’, ‘COMPLETED’

Priority

String

VERY_HIGH,HIGH, MEDIUM, LOW

Created On

Date

 

Expiry date

Date

 

Processor

String

Current processor

 

  • Create RFC function modules to read and update the data from the table.

In SE37. create a new function module which takes ‘Work Item Identifier’ as an optional input parameter and returns the complete table/a row.

(If you prefer to work with Web services as opposed to RFCs, you can create a new consumer proxy and use the proxy class to generate BOP.)

  • Create the backend operational proxy at the consumer side

Fill in all the details and generate

Fig2.jpg

Fig3.jpg

  • Implement data retrieval code for the new provider

Create a new class in transaction SE24

Sample coding for query tasks:

 

 

*** call the rfc/webservice using the bop
lo_bop_query_tasks
= create_rfc_bop( lc_bop_id ).
lo_bop_query_tasks_do
= lo_bop_query_tasks->get_data_object( ).


*** pass the parameters as per the method (read/query/action)

ls_bop_request-iv_user = sy-uname.

***  fill query parameters

ls_bop_request-it_filter_select_options = mt_filter_select_options.
ls_bop_request-it_order                 = mt_order.
ls_bop_request-is_paging                = ms_paging.


lo_bop_query_tasks_do
->set_request_generic( iv_request = ls_bop_request ).
lo_bop_query_tasks
->execute( lo_bop_query_tasks_do ).

*** map the response

map_task_query( EXPORTING is_bop_response = ls_bop_response
IMPORTING et_tasks = lt_tasks ).

 

 

For any other methods, change the BOP name as required and also change the parameters as appropriate.

*** handle filters

 

loop at mt_filter_select_options into ls_filters.
case ls_filters-property.
when 'Status'.
lt_range_status = ls_filters-select_options.
when 'Priority'.
lt_range_priority = ls_filters-select_options.
when 'TaskDefinitionID'.
lt_range_tasktype
= ls_filters-select_options.
endcase.
endloop.

loop at lt_tasks into ls_tasks where task_def_id in lt_range_tasktype
and status in lt_range_status
and priority in lt_range_priority.
insert ls_tasks into table et_tasks.
endloop.

 

Create a new method to create BOPs..

METHOD CREATE_RFC_BOP.
rr_bop
= /iwbep/cl_mgw_bop_factory=>create_rfc(
iv_system_alias
= mv_system_alias
iv_bop_id
= iv_bop_name
iv_rfc_dest
= mv_rfc_destination ).
ENDMETHOD.

 

METHOD create_ws_bop.
DATA: lv_logical_port TYPE prx_logical_port_name.
lv_logical_port
= mv_prov_system.
TRY.
rr_bop
= /iwbep/cl_mgw_bop_factory=>create_ws(
iv_system_alias
= mv_system_alias
iv_bop_id
= iv_bop_name
iv_logical_port
= lv_logical_port
iv_use_logical_port
= abap_true
).
CATCH /iwbep/cx_mgw_bop.
ENDTRY.
ENDMETHOD.

 

METHOD /iwpgw/if_tgw_task_facade~set_system_alias_info.
CALL METHOD super->/iwpgw/if_tgw_task_facade~set_system_alias_info
EXPORTING
iv_system_alias
= iv_system_alias
iv_rfc_destination
= iv_rfc_destination
iv_prov_system
= iv_prov_system.
ENDMETHOD.

 

Step 3: Configure the new provider

Some of the steps mentioned in "Configuring the Task Gateway Service" (linked above) are explained in the following steps:

  • Map the provider to the provider class

Fig5.jpg

Fig6.jpg

For the provider you might want to follow SAP naming conventions.

  • Configure the service

Fig7.jpg

 

  • Create a new RFC destination (this only applies if you are using an RFC connection to access the data provider.)
  • Manage system alias
  • Activate the service

 

Fig9.jpg

  • Assign data provider to data modelthods like

 

Fig10.jpg

Step 4: Consume the Task Gateway service with the new provider

Consume the Task Gateway service with the new provider.

If you do not have a UI, you can use the Unified Inbox. Alternatively, you can view the results by navigating to the Gateway Client or any other rest clients/browsers.

 

For viewing tasks you can of course use SAP Fiori My Inbox as opposed to the Unified Inbox. References to Unified Inbox in this blog are provided as an example only. For more information, seehttp://scn.sap.com/docs/DOC-62602.

Webservice still prompt vor certificate instead using basic authentication

$
0
0

Hi,

 

I created a simple web service which should be work with basic authentication (User & password).

In the SICF I edit the service and changed teh Logon Data to "Required with Logon Data".

When i call teh webservice via browser I'm still prompted for a certificate.

Only when I press "cancel" then the Prompt for basic authentication (User & Password) appears.

How can i cange it that NWGW directly prompt for the basic authentication?

 

BR

Stefan

Passing Table type in SAP Netwaever Gateway

$
0
0

Hi

 

Can we pass Table type as input parameter  for web service ?

 

Below is my BAPI as input Parameter.

passing table type .png

 

Thanks

Surekha

how to pass a value to BAPI in sapui5 using odata services?

$
0
0

Hi ,

 

Require Help to understand how to pass a value through oData services to BAPI to fetch the required result.

 

Detail:

I am  trying to create a mobile app in sapui5 where Im consuming a odata service(Net Weaver gateway)...which is linked to a BAPI,

To Fetch few records from the BAPI, the user in the front end have to input a value...

This value i have to pass through the odata services to the BAPI.

 

Please Share Your Valuable Comments.

 

 

Thanks,

Ashwin

Update Operation for Sales Order header and Item Details

$
0
0

Hi Team,

 

I have created a gateway service for Sales Order (CRUD) Operation. I want to change Sales order header and Item but i was not able to receive the data passed as XML from Rest Client/GW Client. Please suggest how to do the SO change as i can see tutorials for simple update.(Need to know the method which we have to redefine as like Create deep entity)

 

Regards,

Satish

SAP ODATA Service (for creating a record)

$
0
0

Dear All

 

We have developed a ODATA service to query data as entity set or Query data based on a key value.

It is working fine.

However, We like to have a following

 

1. We have a Z-table  ( Say contacts ).  This contains 10 to 11 fields

 

We need to create a odata service that inserts records into this z table. ( I developed one Z function to insert a record )

 

after creating the create method,

How i can get the 11 values from the request. 

 

Can someone give me a hint.

 

Regards,

Venkat

Quick Starter Configuration Guide - SAP Gateway

$
0
0

Updates:

    • July 8th, 2013: Fixed typo in step 2 (the description of step  for system alias maintenance) and explained importance of the field system id in this step.
    • July 9th, 2013: According to the hint from Roy I now recommend to activate the flag "for local app"
    • June 26th, 2014:
      • Added the information that the prerequisites are fullfilled automatically when using SAP NetWeaver 7.40.
      • Changed the name SAP NetWeaver Gateway to the new product name SAP Gateway
    • March 27th, 2015: Updated links to the most recent online help version (GW 2.0 SP10)

 

In the past I have frequently been asked for a quick starter configuration guide for SAP Gateway since the configuration guide does explain all options which might confuse people.

 

In this document I therefore want to describe the basic configuration steps that have to be performed to activate SAP Gateway if

  1. embedded deploymenthas been chosen or if
  2. IW_BEP is deployed on the hub or if
  3. SAP NetWeaver 7.40 is used


in these cases the core components for SAP NetWeaver Gateway (GW_CORE, IW_FND and IW_BEP) and any optional backend components are deployed together in the SAP Business Suite backend system or at least IW_BEP is deployed on the hub system which is also a good idea in case you want to set up a hub-based deployment.In case SAP NetWeaver 7.40 is used the software component SAP_GWFND is deployed as part of the SAP Basis which comprises the functionalities of the AddOn's (GW_CORE, IW_FND and IW_BEP).

 

So this quick starter configuration guide will also help you if you set up a Gateway hub system.

 

After you have performed these three steps you should be able to develop a service on the hub / embedded system and publish it. You will nevetheless have to perform additional configuration steps later on as described in the configuration guide.

 

 

Prerequisite (if the system runs on 7.0, 7.01, 7.02 or 7.31): Deploy the Add-Ons IW_BEP, GW_CORE and IW_FND

 

As a prerequisite you have to deploy at least the following three add-ons IW_BEP, GW_CORE and IW_FND using transaction SAINT.

 

When using SAP NetWeaver 7.40 this step is not necessary since the software component SAP_GWFND is already deployed as part of SAP Basis.

 

Step 1: Activate SAP Gateway

 

As described in the Online Help you start transaction SPRO and navigate to the Activate or Deactivate SAP NetWeaver Gateway node in the implementation guide (IMG).

 

01 Activate SAP NetWeaver Gateway.JPG

 

Step 2: Create a SAP System Alias

 

You now have to create a system alias entry that points from the hub system to the backend system. Since you have chosen an embedded deployment you will create a system alias entry LOCAL using the RFC destination NONE. This is described in the Online Help.

 

03 Create System Alias.JPG

 

Here you fill in the following values:

 

FieldValue
SAP System AliasLOCAL
DescriptionLocal Gateway
Local GWX
For Local AppX (recommended for performance reasons because no RFC destination is used and thus rfc calls are local and more stable)
Software VersionDEFAULT
System IDThe SID of your backend system (here GWM)
ClientThe client you are in (here 800)
WS Provider System

 

This is shown as an example in the following screen shot:

04 Maintain System Alias.jpg

Caution:

You must maintain the field System ID though it is not mandatory. This is because transaction SEGW when being run in the backend selects all system alias entries of the backend system from where it calls the hub using the SID of the backend as a filter. If no value is maintained the system alias will not show up in the list. If only one entry is found it is taken as a default and no dialogue will show up.



Step 3: Create a Gateway Alias

 

This step is needed to have at least one entry for the Gateway hub in the Service Builder (transaction SEGW) to register services that you are going to develop. This is described in the online help.

 

04a Gateway System Alias SPRO.JPG

 

Please note that this time you have to navigate to a different part in the implementation guide called Gateway Service Enablement that contains the Gateway hub specific customizing settings.

 

Here you enter the following values

 

FieldValue
Destination SystemGW_HUB
ClientThe client you are working in (here 800)
System AliasGWM  (Enter a unique name for the host of SAP NetWeaver Gateway, for example the SID of your system)
RFC DestinationNONE

 

This is shown as an example in the following screen shot.

05 Gateway System Alias.JPG

 

Step 4: Activate node 'opu'

 

  1. In a freshly installed system you have to activate the 'opu' node using SICF.

    Activate_OPU_NODE_IN_SICF_01.png
  2. In the following dialogue you have to confirm that all sub nodes shall be activated as well

    Activate_OPU_NODE_IN_SICF_02.png
  3. Press refresh

    Activate_OPU_NODE_IN_SICF_03.png
  4. Expand the node 'opu' again and to check whether the changes have been performed

    Activate_OPU_NODE_IN_SICF_04.png

 

 

 

 

Step 5: Test Your Settings

 

You can now test your settings by developing a simple service using the Service Builder (transaction SEGW).

 

07 Register and Maintain Service.jpg

 

As you can see the name of the destination system of the SAP NetWeaver Gateway alias is shown in the Service Maintanance node in SEGW.

 

When choosing Maintain in the context menu the Activate and Maintain Service transaction is started on the hub system. Please note that the service has been registered for the system alias LOCAL that you have maintained in step 2.

 

 

08 maintain service.JPG

 

 

Step 6: (For Development Systems Only !)

 

 

Since this quick starter configuration guide will probably mostly used for development or test systems I would like to recommend to raise the Error Log Level for the error log in IW_BEP and IW_FND.


Use the following transactions to change the settings for the Error Log Level from Secure to Full as shown in the following screen shots:

 

Backend Error Log --> transaction /n/iwbep/error_log . There from the menu choose Error Log --> Global Configuration

 

backend_error_log.PNG

 

and

 

Gateway Server Error Log --> via transaction /n/iwfnd/error_log . There from the menu choose Error Log --> Global Configuration

 

Gatewy_server_error_log.PNG


Create Dynamic Strucuter

$
0
0

Hi,

 

I have a requirement, where through oData service I have to send a table data.

 

And the same i have to display in UI5 interface.

 

The table columns are not fixed, let give an example.

 

If user select month, that could be one or more, then i have to arrange data as like below.

 

Week1_month1_year     Week2_month1_year     week3_month1_year      week4_month1_year     Week1_Month2_year .......and so on.

 

Is there any possibilities, where we can send table data in dynamic way.

 

 

Regards,

Praveer.

Gateway SEGW "runtime object generator" issues (SP10?).

$
0
0

Hello,

 

We have recently updated our IWFND component to SP10, and after that i'm having some trouble while trying to create services. Whenever I run the object generator funtionality, the gateway keeps asking me to give a request for each generated interface, over and over again, a lot of times, and if I do any change and generate services again, it starts all over. This have never occurred when we were using SP7. Is this a bug or something like that?

 

Thanks,

Rodrigo.

SAP Netweaver Gateway 2.0 - Install in SAP R/3

$
0
0

Dear All,

 

Our netweaver 7.40 do not have abap stack, is that possible that Netweaver Gateway completely install in SAP R/3?

 

Please advise.

 

Thank you.

 

Regards

Choong

upgrade of GBAPP_PR_APV

$
0
0

Hi All,

 

    We have redefined the service GBAPP_PR_APV  using new project ZGBAPP_PR_APV_EXT.   Now the system is upgraded and I see that a lots of new entities/association sets have been added to GBAPP_PR_APV which doesn't reflect in ZGBAPP_PR_APV_EXT.  We have some enhancements in ZGBAPP_PR_APV_EXT.

 

Now when we try to run the PR app after approval, it gives a dump saying "Association set 'HeaderItemComponents_AssocSet' references to disabled entity set 'HeaderItemDetailCollection' ".

 

But HeaderItemDetailCollection doesn't exist in the service before upgrade.

 

Can someone suggest how to update the ZGBAPP_PR_APV_EXT service without loosing my custom enhancements?

 

 

Appreciate your help.

 

Thanks,

Gopi

Fetch Multiple Rows from RFC Table in Odata SAP Netweaver Gateway

$
0
0

Hi All,

 

The problem I'm facing is. I got one RFC which is having some Import parameters and Table as Output.  So when i'm trying to build Odata service using Netweaver Gateway Service Builder. The service has been build succesfully but we are getting only first row from the Table as Output.

 

So anyone can help us regarding this issue How to fetch multiple Rows from the Table or the Entire Table.

Viewing all 2823 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>