Service call issue WD ABAP
Hi,
I have a FM "HRCA_GETEMPLOYEEDATA_FROMUSER" which retrieves the employee master details for the user whoever logged in ECC. This User id is attached to pernr in HR.
I have copied this FM to "Z" and made changes to import paratemer (USERNAME) as default value to SY-UNAME.
I run this FM in se37, it is picks the logged in user id by default as import parameters and retrives the employee details from Infotype.
However, I have created WD ABAP component using service call with Import and export parameters. Created the context mapping with the view controller via Input fields, submit button (with Actions to execute FM) and table element with data binding to display output details.
However, it throws error message as "No active nametab exists for SY". When I run this application in IE it says USER_NOT_FOUND.
Does the import parameter SY-UNAME of logged user is not allowed to pass in WD ABAP ? Then how to proceed with this one to implement ESS applications using WD ABAP. How the FM should be designed for ESS to used for WD ABAP applications.
Please share your inputs.
Regards,
Anil Kumar
Hi Thomas,
Problem has been resolved. It was only warning message while activation of WD ABAP component (No active nametab exists for SY)
Coding is not much from WD ABAP side. Once service call has been created to WD ABAP component, context mapping is done via component controller to View controller with necessary export parameter.
And the FM is executed in "WDDOINIT" method of view at runtime.
DATA lo_COMPONENTCONTROLLER TYPE REF TO IG_COMPONENTCONTROLLER .
lo_COMPONENTCONTROLLER = wd_this->get_componentcontroller_ctr( ).
lo_componentcontroller->execute_zhrca_getemployeedata_(
Output is displayed via a Table element throug data binding.
User ids are same in ECC and Portal as well. SSO is also implemented successfully in the landscape.
WD ABAP execute fine in Portal via WD ABAP iview.
Thank you very much for your inputs.
Regards,
Anil kumar
Similar Messages
-
Concurrent we service call issue
I am using spring2.5 framework and tomcat6 as web server. I do have a web service implmentation on this.
When my consumer applications are trying to call this WS concuurently, The WS response got mis matched or one call gets others response.
How do I synchronize these WS call in this environment. I thoroughly checked my WS implementation and it's not using any shared resources, and I used synchronized in needed place.
My end point is:
<jaxws:endpoint
id="viewResult"
implementor="com.org.fulfillment.webservice.result.ResultViewerImpl"
address="/viewResult"/>My client call is:
ResultViewerService service = resultviewerservice_service.getResultViewerServicePort();
Client psClient = ClientProxy.getClient(service);
HTTPConduit psHttpConduit = (HTTPConduit) psClient.getConduit();
HTTPClientPolicy psClientPolicy = new HTTPClientPolicy();
//Request Time out
psClientPolicy.setReceiveTimeout(StringUtils.toInteger(timeout));
//Connection Time out
psClientPolicy.setConnectionTimeout(40000);
psHttpConduit.setClient(psClientPolicy);
Result res = service.viewResult(_orderlineId, _statusId);
result = res.getResult();Hi,
Do you have stored procedure for service call? if yes, disable it and then try.
Sorry, I am not answering for another thread for blocking service if solution is deleted.
Thanks & Regards,
Nagarajan -
Hi Experts,
While Try to add Service Call document, Getting this error.
[Microsoft][SQL Server Native Client 10.0]String data, right truncation 'Service Calls' (OSCL)
Regards
Mohamed Yousuf Ali M IHi,
Do you have stored procedure for service call? if yes, disable it and then try.
Sorry, I am not answering for another thread for blocking service if solution is deleted.
Thanks & Regards,
Nagarajan -
WebCenter Spaces UCM configuration - GET_ENVIRONMENT service call issue
After installing and configuring UCM, then WebCenter Spaces, the startup of WebCenter should create a content folder in UCM. However the connectivity between WebCenter and UCM causes an error in the log files:
On the UCM-side:
<Nov 9, 2011 2:35:11 PM HKT> <Error> <oracle.ucm.idcibr> <UCM-CS-000001> <general exception
intradoc.common.ServiceException: !csUnableToLoadEnvironment2!csUnableToExecMethod,loadEnvironmentVars
at intradoc.server.ServiceRequestImplementor.buildServiceException(ServiceRequestImplementor.java:2115)
Caused By: java.lang.NullPointerException
at intradoc.common.TableUtils.getIndexList(TableUtils.java:34)
On the WebCenter-side:
<Nov 9, 2011 2:35:11 PM HKT> <Warning> <oracle.webcenter.content.integration.spi.ucm.UCMBridge> <WCS-55028> <Error calling UCM server associated with repository UCMConnection. The service GET_ENVIRONMENT was called with user weblogic at time 11/9/11 2:35 PM, and returned statuscode -32.
oracle.stellent.ridc.protocol.ServiceException: Unable to load environment. Unable to execute service method 'loadEnvironmentVars'. The error was caused by an internally generated issue. The error has been logged.
at oracle.stellent.ridc.protocol.ServiceResponse.getResponseAsBinder(ServiceResponse.java:135)
I did some 'sniffing' of the socket requests between the two and here they are:
WebCenter sends:
REMOTE_USER=weblogic
USER-AGENT=Java; Stellent CIS 11g; Oracle WebCenter 11g
CONTENT_TYPE=text/html
HEADER_ENCODING=UTF-8
REQUEST_METHOD=POST
CONTENT_LENGTH=204
HTTP_HOST=CIS
$$$$
NoHttpHeaders=0&IsJava=1&IdcService=GET_ENVIRONMENT
<?hda jcharset=UTF-8?>
@Properties LocalData
ClientEncoding=UTF-8
IdcService=GET_ENVIRONMENT
UserTimeZone=UTC
UserDateFormat=iso8601
ThreadID=15
@end
UCM replies with:
Content-type: text/plain; charset=utf-8
Content-Length: 531
<?hda version="11gR1-11.1.1.5.0-idcprod1-110413T184243" jcharset=UTF8 encoding=utf-8?>
@Properties LocalData
StatusCode=-32
blFieldTypes=StatusMessage message
IdcService=GET_ENVIRONMENT
ClientEncoding=UTF-8
UserTimeZone=UTC
UserDateFormat=iso8601
NoHttpHeaders=0
ThreadID=15
StatusMessage=Unable to load environment. Unable to execute service method 'loadEnvironmentVars'. The error was caused by an internally generated issue. The error has been logged.
dUser=weblogic
blDateFormat=yyyy-MM-dd HH:mm:ssZ!tUTC!mAM,PM
IsJava=1
@end
Thanks in advance for any insight into this issue.
Edited by: Snowy on Nov 9, 2011 12:45 AMIt turns out, the "Intradoc ServerPort" was not set in UCM. In Enterprise Manager: Content Server: Oracle Universal Content Management: Configuration, it was blank. As soon as I set this to "4444" and restarted it fixed this error.
I'd like to thank all who contributed. -
Hi friends,
I have a small doubt regarding service call in webdynpro-abap. I had a requirement of executing a material change bapi. Firstly I followed the wizard of service call then do the necessary layout building and eventually done with the requirement. But I did the same thing by calling that bapi in a local method of a view. So my doubt is why we need to have service call(calling method of controller) when the same coding i can do in a local method of a view? what is the main significance of Service call in webdynpro-abap?
Please guide.
Thanks.
GauravUnless and until you add "order by" to a query, you cannot say ANYTHING about the order of the rows returned. Well, short of 'you cannot rely on the order of the rows being returned'.
It never has, it never did, it never will.
Balmukund Lakhani
Please mark solved if I've answered your question, vote for it as helpful to help other users find a solution quicker
This posting is provided "AS IS" with no warranties, and confers no rights.
My Blog |
Team Blog | @Twitter
| Facebook
Author: SQL Server 2012 AlwaysOn -
Paperback, Kindle -
How do we call smartforms in abap program or web services
how do we call smartforms in abap program or web services
How many types of smartforms are there?
points will be rewardedHi
See this sample program
Using the fun module smartform is called from the program
Calling SMARTFORMS from your ABAP program
REPORT ZSMARTFORM.
Calling SMARTFORMS from your ABAP program.
Collecting all the table data in your program, and pass once to SMARTFORMS
SMARTFORMS
Declare your table type in :-
Global Settings -> Form Interface
Global Definintions -> Global Data
Main Window -> Table -> DATA
http://sapr3.tripod.com
TABLES: MKPF.
DATA: FM_NAME TYPE RS38L_FNAM.
DATA: BEGIN OF INT_MKPF OCCURS 0.
INCLUDE STRUCTURE MKPF.
DATA: END OF INT_MKPF.
SELECT-OPTIONS S_MBLNR FOR MKPF-MBLNR MEMORY ID 001.
SELECT * FROM MKPF WHERE MBLNR IN S_MBLNR.
MOVE-CORRESPONDING MKPF TO INT_MKPF.
APPEND INT_MKPF.
ENDSELECT.
At the end of your program.
Passing data to SMARTFORMS
<b>call function 'SSF_FUNCTION_MODULE_NAME'
exporting
formname = 'ZSMARTFORM'</b>
VARIANT = ' '
DIRECT_CALL = ' '
IMPORTING
FM_NAME = FM_NAME
EXCEPTIONS
NO_FORM = 1
NO_FUNCTION_MODULE = 2
OTHERS = 3.
if sy-subrc <> 0.
WRITE: / 'ERROR 1'.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
endif.
call function <b>FM_NAME</b>
EXPORTING
ARCHIVE_INDEX =
ARCHIVE_INDEX_TAB =
ARCHIVE_PARAMETERS =
CONTROL_PARAMETERS =
MAIL_APPL_OBJ =
MAIL_RECIPIENT =
MAIL_SENDER =
OUTPUT_OPTIONS =
USER_SETTINGS = 'X'
IMPORTING
DOCUMENT_OUTPUT_INFO =
JOB_OUTPUT_INFO =
JOB_OUTPUT_OPTIONS =
TABLES
GS_MKPF = INT_MKPF
EXCEPTIONS
FORMATTING_ERROR = 1
INTERNAL_ERROR = 2
SEND_ERROR = 3
USER_CANCELED = 4
OTHERS = 5.
if sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
endif.
<b>Reward points for useful Answers</b>
Regards
Anji -
WD Service Call ABAP program generation error in 2004s
Hi,
I create a 'service call' by using the wizard and I select my existing 'component controller' as a controller. The service type I use is a (custom) function module. The function module has 1 import parameter, an export structure and 6 tables.
In the 'adapt context' step I choose all fields and structures to be stored in the context. Then I generate the code.
After generating the code there is a syntax error in the code of the created method. The method code under comment 'store output to context' binds the rfc structure to the context BUT it seems to think that it is a table instead of a structure.
the code:
node_Contract->bind_Structure(Stru_C_Contract[] )
Of course I can remove the '[]' signs manually but I think it is strange that the wizard produces wrong code.
Please let me know if this is a bug or something else.Values in variants are not converted. You can use the same variant in your ABAP program, but you need to change the value in the parameter for logical system in each system you transport the change to. The only alternative is to create a logical system name in SM59 that is the same in all your BW systems but it refers to the local R/3 system.
In other words, you will have two logical systems in your BWD system pointing to your R/3 Dev. Let's call them R3DCLNT100 and R3SYSTEM, where R3DCLNT100 is also the source system (in RSA1). You can use R3SYSTEM in your variant for your ABAP program. In your BWQ (test system), you will have two logical systems also, R3QCLNT100 and R3SYSTEM, where R3QCLNT100 is also your source system.
Does this help. -
URGENT: Service Call Activity Issue
Hi guys, I have a seriously irritating issue concerning the linking of an activity to service call.
As of Service Pack 01, Patch 36 (at least as far as I know) I get the following error when attempting to create and link an activity to a service call:
Error Code: -5002
Error Description: A service call activity does not exist
I use the folliwing code;
If oServ.GetByKey(MRI) Then
If DocType = "QT" Then
oAct = oComp.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oContacts)
oAct.Activity = SAPbobsCOM.BoActivities.cn_Task
oAct.CardCode = oServ.CustomerCode
oAct.DocEntry = DocID
oAct.DocType = 23
oDoc = oComp.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oQuotations)
If oDoc.GetByKey(DocID) Then
oAct.Notes = "Sales Quote: " & oDoc.Comments
End If
oAct.Details = "Sales Quote " & DocID & " auto created by MRI " & MRI & ""
If oAct.Add <> 0 Then
oApp.SetStatusBarMessage("Error adding Linked Document Activity for Sales Quote " & DocID & " : " & oComp.GetLastErrorDescription)
oLog.WriteLog("Error adding Linked Document Activity for Sales Quote " & DocID & " : " & oComp.GetLastErrorCode & oComp.GetLastErrorDescription, EventLogEntryType.Error)
Else
oServ.Activities.Add()
oServ.Activities.ActivityCode = oComp.GetNewObjectKey
oServ.Activities.SetCurrentLine(oServ.Activities.Count() - 1)
End If
If oServ.Update <> 0 Then
oApp.SetStatusBarMessage("Error linking Expense Document " & DocID & ":" & oComp.GetLastErrorDescription)
oLog.WriteLog("Error linking Expense Document " & DocID & ":" & oComp.GetLastErrorCode & "-" & oComp.GetLastErrorDescription, EventLogEntryType.Error)
End If
the Activity is added without any problem, but the error comes when linking it to the Service Call (oServ.Update)
Can you please help, I'm going insane with this problem.this is how i got it to work:
ServiceCalls sc = null;
sc = (ServiceCalls)company.GetBusinessObject(BoObjectTypes.oServiceCalls);
if (!sc.GetByKey(callId))
throw new Exception("Failed to add service call activity! Service call does not exist!");
if (sc.Activities.Count == 1)
sc.Activities.SetCurrentLine(sc.Activities.Count - 1);
string temp = sc.Activities.ActivityCode.ToString();
if (!string.IsNullOrEmpty(temp) && !temp.Equals("0"))
sc.Activities.Add();
else
sc.Activities.Add();
sc.Activities.SetCurrentLine(sc.Activities.Count - 1);
sc.Activities.ActivityCode = int.Parse(lastAcctivity);
if (sc.Update() != 0)
company.GetLastError(out errorCode, out errorMsg);
if (null != sc)
System.Runtime.InteropServices.Marshal.ReleaseComObject(sc);
sc = null;
throw new Exception(errorCode + " -> " + errorMsg);
You could either use that piece of code or make an insert in SCL5. -
ABAP source code to connect to third party systems using web service calls?
Hi all,
can any one provide an example ABAP source code to connect to third party systems using web service calls? The base system is CRM.Do you want to call a web service in a remote system, or do you want to provide a web service?
If you want to call a web service you should create a proxy object via SE80. Open your development package, right click on the tree entry and choose: Create -> Enterprise Service / Web Service -> Proxy Object and provide the needed information (including the WSDL description file). You may then use the proxy object to call the web service (if the connection and everything else works right).
See [http://help.sap.com/saphelp_nw04/helpdata/en/9b/dad1ae3908ee44a5caf57e10918be9/content.htm|http://help.sap.com/saphelp_nw04/helpdata/en/9b/dad1ae3908ee44a5caf57e10918be9/content.htm] -
Call of an external web service out of the ABAP-Stack
Hi experts,
i have to implement a call of an external webservice out of the ABAP-stack. Directly from an ABAP-report, not using any PI/XI.
The only thing the one implemented the service could give me was a description of the SOAP-call which should take place (see code below). So i should pass some data, call the function 'makeACall', and receive some data. But i have no idea how to use the calls of the include SOAPINCL. Is there any example showing the 'translation' of such a SOAP-message into an ABAP-stack-call?
Thanks and regards
Christian
<?xml version="1.0" encoding="ISO-8859-1"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:XXX="urn:nsf">
<SOAP-ENV:Body SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" id="_0">
<makeACall xmlns="urn:nsf">
<in xsi:type="xsd:string">
<BaseApp>
<Control>
<Plugin><![CDATA[]]></Plugin>
<Function><![CDATA[]]></Function>
<Configuration><![CDATA[]]></Configuration>
<ConfigurationName><![CDATA[]]></ConfigurationName>
</Control>
<Input>
<DetInput>
<CustomerData>
<Record><![CDATA[]]></Record>
<Record><![CDATA[]]></Record>
</CustomerData>
<otherData>
<GroupId><![CDATA[]]></GroupId>
</otherData>
</DetInput>
</Input>
</BaseApp>
</in>
</makeACall>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>Hi,
BAM has a set of default web services. You can implement your own web service call and populate the data object with corresponding codes. For instance, if you would want to monitor 2 web services, create a data object with two columns.
This web service would run every minute and populate the data object columns with 1/0 depending on the state. You could create a chart from this data object to display the status of the web service.
Please explore more into how to implement web services using BAM. BAM already has few of them and you need to add yours to this.
Cheers,
-AR -
Web Dynpro for ABAP, service calls.
Hi guys,
I can't find a way to do a so called "reimport" (not the correct word to use I know!) when I change a function module in ABAP. See in Java, if we change importing or exporting parameters we can reimport the model to pick up changes, but this isnt the case in WDP ABAP. Can anyone please tell me how I can do this in ABAP? I had to delete the context in the component and view controller to prevent the service call wizard from renaming my context nodes as *_1 or *_2 etc. This is quite a headache! Also the method I had defined to execute the function module has to be renamed too, unless I delete it 1st ofcourse! Is there a way to overwrite and replace my existing nodes in the context?
Any help is appreciated.
Thanks in advanced.
Kunal.How comes nobody replied to this post?
Does that mean its impossible to do a Java type reimport in ABAP if the function module changes? -
Why Service Call and why not call Function module Directly in WD ABAP
Hi,
I have created a Webdynpro applications and the logic requires calling avrious Function modules.
Do I need to create Service Call for each Function module or call them directly.
It would be great if you can suggest me under what cases I need to opt for Service call
For example, if I use 'RP_CALC_DATE_IN_INTERVAL', do I need to use Service call or call function module directly.
Note: I have searched forums but could not get the correct answer which I want
Thanks!The Service Call is really meant to be a wizard/time saver. It has the advantage that it can generate matching context nodes/attributes for the interface of the Function Module you are calling. However everything that the service call does can also be created by hand.
Personally I'm not a fan of what the service call wizard generates. Its good as a time saver or for beginners, but I find I prefer to touch up the code it generates anyway. I much prefer to create a nice reusable model class with its own unit test and then consume this model class (with the service call wizard) from WD. This model class might contain one or more function module calls depending upon what logic I need to access. -
Web Service to ABAP Proxy, Calling RFC from ABAP Proxy
can any body send me the notes or Step by step process of Webserice of calling RFC using ABAP proxy, I am new to XI. send me detail process of this perticular scenarios
Hope this helps
/people/siva.maranani/blog/2005/05/23/communication-between-sap-system-webservice-using-proxies
also refer to
/people/shabarish.vijayakumar/blog/2006/03/23/rfc--xi--webservice--a-complete-walkthrough-part-1
/people/shabarish.vijayakumar/blog/2006/03/28/rfc--xi--webservice--a-complete-walkthrough-part-2
Rgds,
Kumar
Message was edited by:
Kumar -
Errors when processing web service call
Hello Experts,
Based on a requirement, I got a URL based on WSDL, using which I created a Consumer Proxy in SAP.
I created a Logical Port in SOA Manager with type selected as 'WSDL'.
When I'm trying to execute the proxy class to call the webservice using the logical port through SE80 it is throwing an error log as stated below.
1) SOAP:14 Unexpected element -el=definitions ns=http://schemas.xmlsoap.org/wsdl/
2)Error when processing Web service call
3)Error when calling SOAP Runtime functions: Unexpected element -el=definitions ns=http://schemas.xmlsoap.org/wsdl/
Kindly help me out.
Thanks,
VamshiHi,
Check Anton's reply in this thread: External WS Consumption Issue
Also refer the below doc which may help you: Consume an External Web Service in a Nutshell with Good Old ABAP
Calling WebServices from ABAP via HTTPS
Regards,
Kiran -
Webdynpro ---- BAPI/FM used in service call to get sales order
Hi
I need to have a main view which contain an inputfield to insert a sales order, then check whether the sales order is existed in database, at last, pop up a message box to show the feedback.
So which FM or BAPI shall I have to use during service call?
Best Regards!
StephanieHi,
Use the BAPIs
To create -
BAPI_SALESORDER_CREATEFROMDAT2
To change -
BAPI_SALESORDER_CHANGE
I assume that you are trying to create a sales order or You want to change the salesorder.
For the sales order we need to write a selelct query on the check table for the existence of the sales order.
Please try to use the SE37 Tcode to view all the BAPIs related to salesorder.
Are you using WD for Java Or ABAP or BSP.
Please a\let me know in case of any issues.
Regards
Lekha
Maybe you are looking for
-
How can I edit mp3 info w/o iTunes for free?
I just switched from a PC to a Macbook Pro. On my PC, I simply right-clicked on an mp3 file, clicked properties, & I edited all of the info contained within that mp3 file. Then, once cleaned up, I imported the mp3 files into iTunes. So now I want to
-
Open item not seen in F-44 screen
In one vendor when I am executing Fbl1n its showing 5 line items,but when I trying for clearing through F-44 in that prcosee open item I am able to see 4 line items only. all items are Sp gl , and i am putting Sp Gl indicator at input screen of F-44
-
My application doesn't appear in search results...
How can I override the default robots.txt file for my application? The default settings disallow all robots and prevent me from being indexed by search engines. Surely this must be possible?
-
Linkage of transaction event key with new movement type
Hello All, I have have created a new Z movement type and 1 new Transaction event key. I have to link my new Transaction event key with my new Movement type. That i can see in OBYC. Please tell me How can i do it. Regards, Vishal Garg Edited by: visha
-
SQLException Instance not found
I have a web application (JRun) that uses JDBC to connect to a SQL Server 2000 database. During times of heavy volume I get a SQL Exception* stating that the instance on the server is not found. The instance does exist and on a normal day it connects