How to handle Webservice
Hi Experts,
I want to know how to handle webservice in web Dynpro Application.
I need some documentation regarding this.
can any one help me.
Advance Thanks,
P.J.Balaji
Hi Balaji,
Check These links..
<a href="https://www.sdn.sap.com/irj/sdn/wiki?path=/display/wdjava/faq-Models-AdaptiveWebService&">Adaptive Webservices</a>
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/webcontent/uuid/6bfb2c4e-0a01-0010-8eb4-f21a42d8f6ec [original link is broken] [original link is broken]
<a href="http://www.systinet.com/resources/tutorials">Webservice tutorials</a>
<a href="http://www.onjava.com/pub/a/onjava/2001/08/07/webservices.html">Java Webservices and Primer</a>
<a href="http://www.learningtree.com/courses/577.htm">Building XML webservices with Java</a>
[url=http://www.accelebrate.com/java_webservices_training/web_services.htm]Introduction[/url]
Urs GS
Similar Messages
-
How to handle multiple actions in the webservice ?
Hi Guys,
I have multiple operations in the webservcie and under soap action in the receiver soap adapter, i dont know how to handle multiple soap operations.
can anybody guide me, how to acheive this ?
Thanks,
sriniHi Srini !
This weblog shows the general design of a scenario with BPM
/people/krishna.moorthyp/blog/2005/06/09/walkthrough-with-bpm
This link:
http://help.sap.com/saphelp_nw04/helpdata/en/de/766840bf0cbf49e10000000a1550b0/content.htm
show how to insert a predefined BPM pattern. You could use one of the BpmPatternSerialize.... patterns to see how you BPM should look like...
Basically it should be:
1) Receive Step (async/sync, as you need) to trigger the BPM
2) Send step (sync) for first webservice
3) Send step (sync) for second webservice
N) Send step (sync) for N webservice
N+1) if the whole communication is sync, here you need to use a send step to return back the answer to sender.
Regards,
Matias. -
How to handle a return statement from a login webservice call
Hi all,
I am new to this iPhone apps. I am trying to wirte a webservice call in which I am comparing my username and password details in webservice and getting an boolean statement as a response. By using that response i should display valid or invalid statement on the screen.
Now i am able to get the response from the webservice, but i am unable to handle that boolean variable present in the xml statement.
Can any one please suggest me how to handle that boolean value from the xml statement?
Thanks
SRI.Since you are a registered developer you would be far better off posting this in the developers site, this forum is for users of apps.
-
What do you suggest how to handle images?
Hello,
I would like to develop a book administration program in web dynpro but I have no clue how to handle the images. There are several points I would like to take care about. The frontend is wd4a and the backend is abap. There will also be an iPhone App that connects via WebServices that also need the data and the images.
What do you think is the best possibility to save the images?db via blob, file system, ...
Are there examples how to upload the images via web dynpro and transfer it to the backend?
Thanks a lot in advance,
VanessaHello,
I'd echo Neil's thoughts - definitely store your images in tables as they are transactional data. Creating a DB table with variable length data isn't difficult - just specify the datatype as rawstring.
You can then easily read from the db and serve these images in image UI elements, I'm guessing the row repeater UI element is going to be very useful for you.
Does sound like a good fun project!
Cheers,
Chris -
How to handle multiple soap operations from XI ?
Hi Experts,
I am sap xi guy and we need to handle a webservcie which has multiple operations. any body can guide how to handle this ?
In xi soap receiver adapter we have an option going only for a single soap action ? can sap handle rpc style format of webservice ? what is meant by rpc
any help would be really appreciated
Thanks,
sriniHi Srinivas,
Please refer to this article on how to handle the soap action. Hope this will help you understanding the soap action mistery.
http://www.oreillynet.com/xml/blog/2002/11/unraveling_the_mystery_of_soap.html
Regards
Sumit Bhutani -
How to handle Queue blockage due to application error in BPM
Hi
In the integration process that i have created, there is a SyncSend(calling a webservice using SOAP adapter) Step.
Sometimes the response message from the receiver application may be a Fault message.
Whenever a fault message is sent back to integration process in XI, the message fails and the queue is blocked.
Bacause of this queue blockage , the next messages to be processed are getting blocked.
How to handle this?
Thanks
Ramdo you have configured the fault message mapping in the Operation Mapping? what error does the sxi_monitor display?
-
SAP Idocs -How to handle response from target system
Hi,
I am working on a scenario in which I will send Idocs asynchronously from SAP thro a SOAP adapter to a webservice deployed on the target system.
After the Idoc data is posted in the target system,the target system will send the acknowledgement for the receipt(basically response message).How to handle this scenario?
SAP Idoc( outbound asynchronous)---> SAP XI3.0(soap adapter) ---> Target system(inbound synchronous)
Do I need to go for BPM to handle this situation?
Is there any alterantive to BPM.
If any of the forum members who have worked on the similar scenario could help me in finding a better solution,I will be thankful to them.
Thanks,
LeoHi Udo,
Thanks for the info.My scenario is like this.
SAP R/3 Idoc -> SAP XI 3.0 <-> Webservice in the target system.
The webservice in the target system will receive the Idoc as a request messsage and send a response message synchronously.
Since Idoc is sent asynchronously( I believe Idocs sent from SAP are always asynchronous),there is no Proxy waiting in SAP R/3 to receive the response message from the target system.
If I go for BPM for the above scenario,will the BPM steps look like the following.
1)Receive Idoc from SAP.
2)Send Idoc sysnchronously to webservice
3)Receive the response from the webservice synchronously.
4.Post the response message to a proxy which can handle it further in SAP R/3.
Please note that my knowledge in BPM is limited and correct me if I am wrong.
Thanks in advance
S.Banukumar -
How to handle Asynchronous calls using OSB?
Hi There,
How to handle Asynchronous calls using OSB?
Please help me out??
-VenkatHello friend, here is what you need.
Oracle Service Bus, invoke asynchronous webservices | Oracle .. Java .. OpenSource .. SOA -
How to handle exception CX_SY_REF_IS_INITIAL
hi experts,
im working on a test scenario for abap mapping in SAP XI im getting this error
An exception with the type CX_SY_REF_IS_INITIAL occurred, but was neither handled locally, nor declared in a RAISING clause Dereferencing of the NULL reference
i understand that i need to catch this exception in the abap coding but i'm not familiar with oops concepts
can any one please suggest me how to handle this exception for the following code...
method IF_MAPPING~EXECUTE.
break x1149.
* initialize iXML
TYPE-POOLS: ixml.
class cl_ixml definition load.
** Instances & Variable declaration =======================
* instance main factory
TYPES: BEGIN OF t_xml_line,
data(256) TYPE x,
END OF t_xml_line.
DATA: l_ixml TYPE REF TO if_ixml,
* instance input stream factory
l_streamfactory TYPE REF TO if_ixml_stream_factory,
* instance input stream
l_istream TYPE REF TO if_ixml_istream,
* instance input document
l_document TYPE REF TO if_ixml_document,
* instance parse input document
l_parser TYPE REF TO if_ixml_parser,
* instance for elements within the nodes
node TYPE REF TO if_ixml_node,
*instance of nodemap
nodemap TYPE REF TO if_ixml_named_node_map,
* instance for iterator
iterator TYPE REF TO if_ixml_node_iterator,
name TYPE string,
value TYPE string,
* instance main factory
o_ixml TYPE REF TO if_ixml,
* instance output document
o_document TYPE REF TO if_ixml_document,
* instance output stream
o_istream TYPE REF TO if_ixml_ostream,
* instance parse output document
o_parser TYPE REF TO if_ixml_parser,
* instance fot renderer
renderer type ref to if_ixml_renderer,
irc type i,
l_xml_size TYPE i,
*ROOT ELEMENT
l_element_MT_DEMANDTEC_COST TYPE REF TO if_ixml_element,
*NEXT CHILD ELEMENT FROM THE ABOVE PARENT
l_element_DT_DEMANDTEC TYPE REF TO if_ixml_element,
*CHILDREN1 ELEMENT FOR DT_DEMANDTEC
l_element_DT_WHSE TYPE REF TO if_ixml_element,
*CHILDREN2 ELEMENT FOR DT_DEMANDTEC
l_element_DT_DC TYPE REF TO if_ixml_element,
*CHILDREN3 ELEMENT FOR DT_DEMANDTEC
l_element_DT_PLANT TYPE REF TO if_ixml_element,
*CHILDREN4 ELEMENT FOR DT_DEMANDTEC
l_element_DT_QTY TYPE REF TO if_ixml_element.
*saving the xml document
DATA: l_xml_table TYPE TABLE OF t_xml_line.
types: begin of t_source,
whse(5),
dc(4) ,
plant(4),
qty type i,
end of t_source.
types: tt_source TYPE STANDARD TABLE OF t_source.
data: wa_source type t_source.
data: it_source TYPE tt_source,
ivalue type string.
* Procedures and business logic =======================================
* Creating the main iXML factory
l_ixml = cl_ixml=>create( ).
* Creating a stream factory
l_streamfactory = l_ixml->create_stream_factory( ).
* create input stream
l_istream = l_streamfactory->create_istream_xstring( source ).
* initialize input document
l_document = l_ixml->create_document( ).
* Create a Parser
l_parser = l_ixml->create_parser( stream_factory = l_streamfactory
istream = l_istream
document = l_document ).
* parse input document
l_parser->parse( ).
* Validate a document
l_parser->set_validating( mode = if_ixml_parser=>co_validate ).
* Parse the stream
IF l_parser->parse( ) NE 0.
IF l_parser->num_errors( ) NE 0.
DATA: parseerror TYPE REF TO if_ixml_parse_error,
str TYPE string,
i TYPE i,
count TYPE i,
index TYPE i.
count = l_parser->num_errors( ).
WRITE: count, ' parse errors have occured:'.
index = 0.
WHILE index < count.
parseerror = l_parser->get_error( index = index ).
i = parseerror->get_line( ).
WRITE: 'line: ', i.
i = parseerror->get_column( ).
WRITE: 'column: ', i.
str = parseerror->get_reason( ).
WRITE: str.
index = index + 1.
ENDWHILE.
ENDIF.
ENDIF.
* Process the document
IF l_parser->is_dom_generating( ) EQ 'X'.
refresh : it_source.
node ?= l_document.
CHECK NOT node IS INITIAL.
* create a node iterator
iterator = node->create_iterator( ).
* get current node
node = iterator->get_next( ).
* loop over all nodes
WHILE NOT node IS INITIAL.
CASE node->get_type( ).
WHEN if_ixml_node=>co_node_element.
* element node
name = node->get_name( ).
nodemap = node->get_attributes( ).
WHEN if_ixml_node=>co_node_text.
* text node
value = node->get_value( ).
if name eq 'DT_WHSE'.
wa_source-whse = value.
ELSEIF name eq 'DT_DC'.
wa_source-DC = value.
ELSEIF name eq 'DT_PLANT'.
wa_source-PLANT = value.
ELSEIF name eq 'DT_QTY'.
wa_source-QTY = value.
COLLECT wa_source INto it_source.
CLEAR wa_source.
ENDIF.
endcase.
node = iterator->get_next( ).
endwhile.
ENDIF.
loop at it_source into wa_source .
at first.
* Creating a ixml factory
o_ixml = cl_ixml=>create( ).
* Creating the dom object model
o_document = l_ixml->create_document( ).
endat.
* Build and Fill root node MT_DEMANDTEC_COST
AT FIRST.
l_element_MT_DEMANDTEC_COST =
O_document->create_simple_element(
name = 'MT_DEMANDTEC_COST'
parent = o_document ).
ENDAT.
* Build and Fill Child node DT_DEMANDTEC for parent
* MT_DEMANDTEC_COST
l_element_DT_DEMANDTEC = O_document->create_simple_element(
name = 'DT_DEMANDTEC'
parent = l_element_MT_DEMANDTEC_COST ).
* Build and Fill Child node1 DT_WHSE for parent DT_DEMANDTEC
ivalue = wa_source-WHSE.
l_element_DT_WHSE = O_document->create_simple_element(
name = 'DT_WHSE'
VALUE = ivalue
parent = l_element_DT_DEMANDTEC ).
* Build and Fill Child node2 DT_WHSE for parent DT_DEMANDTEC
ivalue = wa_source-DC.
l_element_DT_DC = O_document->create_simple_element(
name = 'DT_DC'
VALUE = ivalue
parent = l_element_DT_DEMANDTEC ).
* Build and Fill Child node3 DT_WHSE for parent DT_DEMANDTEC
ivalue = wa_source-PLANT.
l_element_DT_PLANT = O_document->create_simple_element(
name = 'DT_PLANT'
VALUE = ivalue
parent = l_element_DT_DEMANDTEC ).
* Build and Fill Child node4 DT_QTY for parent DT_DEMANDTEC
ivalue = wa_source-QTY.
l_element_DT_QTY = O_document->create_simple_element(
name = 'DT_QTY'
VALUE = ivalue
parent = l_element_DT_DEMANDTEC ).
endloop.
* render document ======================================================
* create output stream
o_istream = l_streamfactory->create_ostream_xstring( result ).
* Connect internal XML table to stream factory
o_istream = l_streamfactory->create_ostream_itable( table =
l_xml_table ).
renderer = o_ixml->create_renderer( ostream = o_istream
document = o_document ).
irc = renderer->render( ).
* how do i catch the exception for type CX_SY_REF_IS_INITIAL ...?
endmethod.
full reward points for answers.
Thanks & Regards,
Uday Kumar.
Edited by: UDAY on May 6, 2008 9:32 PMHi Uday,
Its occurs because you're trying to access a objects with null reference. Or you forgot to create an instance or an error occurs during the instance creation. So You should put all your "Procedures and business logic" inside a Try/catch block. as follow.
" Define a class exception object to get error message......
DATA o_exception TYPE REF TO cx_sy_ref_is_initial.
"// Use the statment Try block to catch the error.
TRY.
* Creating the main iXML factory
l_ixml = cl_ixml=>create( ).
* Creating a stream factory
l_streamfactory = l_ixml->create_stream_factory( ).
* create input stream
l_istream = l_streamfactory->create_istream_xstring( source ).
* initialize input document
l_document = l_ixml->create_document( ).
* Create a Parser
l_parser = l_ixml->create_parser( stream_factory = l_streamfactory
istream = l_istream
document = l_document ).
* parse input document
l_parser->parse( ).
* Validate a document
l_parser->set_validating( mode = if_ixml_parser=>co_validate ).
* Parse the stream
IF l_parser->parse( ) NE 0.
IF l_parser->num_errors( ) NE 0.
DATA: parseerror TYPE REF TO if_ixml_parse_error,
str TYPE string,
i TYPE i,
count TYPE i,
index TYPE i.
count = l_parser->num_errors( ).
WRITE: count, ' parse errors have occured:'.
index = 0.
WHILE index < count.
parseerror = l_parser->get_error( index = index ).
i = parseerror->get_line( ).
WRITE: 'line: ', i.
i = parseerror->get_column( ).
WRITE: 'column: ', i.
str = parseerror->get_reason( ).
WRITE: str.
index = index + 1.
ENDWHILE.
ENDIF.
ENDIF.
* Process the document
IF l_parser->is_dom_generating( ) EQ 'X'.
refresh : it_source.
node ?= l_document.
CHECK NOT node IS INITIAL.
* create a node iterator
iterator = node->create_iterator( ).
* get current node
node = iterator->get_next( ).
* loop over all nodes
WHILE NOT node IS INITIAL.
CASE node->get_type( ).
WHEN if_ixml_node=>co_node_element.
* element node
name = node->get_name( ).
nodemap = node->get_attributes( ).
WHEN if_ixml_node=>co_node_text.
* text node
value = node->get_value( ).
if name eq 'DT_WHSE'.
wa_source-whse = value.
ELSEIF name eq 'DT_DC'.
wa_source-DC = value.
ELSEIF name eq 'DT_PLANT'.
wa_source-PLANT = value.
ELSEIF name eq 'DT_QTY'.
wa_source-QTY = value.
COLLECT wa_source INto it_source.
CLEAR wa_source.
ENDIF.
endcase.
node = iterator->get_next( ).
endwhile.
ENDIF.
loop at it_source into wa_source .
at first.
* Creating a ixml factory
o_ixml = cl_ixml=>create( ).
* Creating the dom object model
o_document = l_ixml->create_document( ).
endat.
* Build and Fill root node MT_DEMANDTEC_COST
AT FIRST.
l_element_MT_DEMANDTEC_COST =
O_document->create_simple_element(
name = 'MT_DEMANDTEC_COST'
parent = o_document ).
ENDAT.
* Build and Fill Child node DT_DEMANDTEC for parent
* MT_DEMANDTEC_COST
l_element_DT_DEMANDTEC = O_document->create_simple_element(
name = 'DT_DEMANDTEC'
parent = l_element_MT_DEMANDTEC_COST ).
* Build and Fill Child node1 DT_WHSE for parent DT_DEMANDTEC
ivalue = wa_source-WHSE.
l_element_DT_WHSE = O_document->create_simple_element(
name = 'DT_WHSE'
VALUE = ivalue
parent = l_element_DT_DEMANDTEC ).
* Build and Fill Child node2 DT_WHSE for parent DT_DEMANDTEC
ivalue = wa_source-DC.
l_element_DT_DC = O_document->create_simple_element(
name = 'DT_DC'
VALUE = ivalue
parent = l_element_DT_DEMANDTEC ).
* Build and Fill Child node3 DT_WHSE for parent DT_DEMANDTEC
ivalue = wa_source-PLANT.
l_element_DT_PLANT = O_document->create_simple_element(
name = 'DT_PLANT'
VALUE = ivalue
parent = l_element_DT_DEMANDTEC ).
* Build and Fill Child node4 DT_QTY for parent DT_DEMANDTEC
ivalue = wa_source-QTY.
l_element_DT_QTY = O_document->create_simple_element(
name = 'DT_QTY'
VALUE = ivalue
parent = l_element_DT_DEMANDTEC ).
endloop.
* render document ======================================================
* create output stream
o_istream = l_streamfactory->create_ostream_xstring( result ).
* Connect internal XML table to stream factory
o_istream = l_streamfactory->create_ostream_itable( table =
l_xml_table ).
renderer = o_ixml->create_renderer( ostream = o_istream
document = o_document ).
irc = renderer->render( ).
" The Statement CATCH define a block that catches the exceptions of the
" exception class cx_sy_ref_is_initial
CATCH cx_sy_ref_is_initial INTO o_exception.
" If you need to get the error message text do as follow
DATA errorMsg type string.
" Get the message text
errorMsg = o_exception->GET_TEXT( ).
" Display the error information
MESSAGE errorMsg TYPE 'I'.
ENDTRY.
The TRY block defines a guarded area whose class-based exceptions can be caught in the subsequent CATCH blocks. If no exception occurs in the TRY block and it reaches its end, the system continues the processing after ENDTRY. If a class-based exception occurs in the TRY block, the system searches for an exception handler in the same or an external TRY control structure.
Font: SAP Help
You can see a how to create and use an exception in this example [ ABAP Objects - Defining a Class-based exceptions|https://wiki.sdn.sap.com/wiki/x/19w] .
Best Regards.
Marcelo Ramos -
How to handle null values in RTF templates
Hi - I have two groups in a report for different SQL and two formulas for each group, CF_ELE_CNT and CF_ELE_CNT1. In the template I use the below code to print or not print a section.
<?if:number(CF_ELE_CNT +CF_ELE_CNT1) >0?>
The problem is when there is no data in the second group its not creating the XML tag for CF_ELE_CNT1, though CF_ELE_CNT has 13, it still does not print that partucular section. If I remove CF_ELE_CNT1 from the condition it works fine. I was wondering how to handle this.
Any help would be appreciated!!
Thanks,
RavHey Rav,
You can add a check to identify it the element/tag is present or not
<?if:(CF_ELE_CNT1)?> will give true, if the element is present otherwise falsesince you are adding the two elements, you have to add a or condition.
<?if:(CF_ELE_CNT and number(CF_ELE_CNT) >0 ) or ( CF_ELE_CNT1 and CF_ELE_CNT1 >0)?> -
How to handle file on application server without coading?
HI all,
can anybody tell me How to handle file on application server without coading? Is there any solution?
Thanks in advance.> can anybody tell me How to handle file on application server without coading? Is there any solution?
what is that you want to handle. what you do if you don't code ... -
Thoughts on how LabVIEW handles checkout of file from SCC when file already open
When you already have a file/project open in LabVIEW and it is set to read only because you haven't checked it out, you can go into SCC and do a checkout then save the file immediately. The issue with this is, if your local copy doesn't match the copy in SCC, you will probably be overwriting changes. Sometimes this is convenient because if you have ever edited a MS Word file and then gone to save and it won't let you because it was opened as read-only...then that sucks because you either lose your work, or have to do a copy of the entire word file->close the program->re-open as writable, then paste. This can be avoided with the "LabVIEW way", but the "MS Word" way seems much safer because it forces you to conscioiusly make the file writable (by either checking it out or manually write clicking and changing to writable) BEFORE opening it. I just wanted people's opinions on how LabVIEW handles this, and if there would be a better way.
CLA, LabVIEW Versions 2010-2013VSS
CLA, LabVIEW Versions 2010-2013 -
How to handle password changes if we implement singlesignon between BO& BI7
Hi,
As we know ,we can implement single signon between BO and SAP BI 7, by importing roles and users through CMC and by selecting the option "Use Single signon during report refresh time".
My doubt here is, When we import roles from SAP and Auto import the users, is it only the SAP usernames that are stored in BO repository or both username and password. If second case holds true then how to handle/manage password change for a user who is already imported in BO sometime back?
Would the password changes be reflected automatically in BO?
Please guide me if you think that I'm thinking in a wrong direction.Hi Naresh,
password changes are reflected automatically in BO. BO just forwards the data to the SAP side and it does the real authentification.
Regards,
Stratos
PS: Keep in mind that you cannot change the SAP password on the BO login screen if your SAP password has expired. You have to do this with the SAP client (SAP GUI) -
How to handle rpc/encoded style messages using BizTalk?
I am integrating with a lot of services and one of our customers has a service with rpc/encoded style
I could consume and generate schema from their wsdl file via BizTalk consume WCF wizard.
Once I am trying to call the service with request message that generated from the schema, it is giving an error that can not desterilize the first element of the message.
No Deserializer found to deserialize a 'FieldName' using encoding style 'null'
I compared the stub xml request message from SaopUI and I noticed that the xml expecting the data type with the element like this .
<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsb="WSBanka">
<soapenv:Header/>
<soapenv:Body>
<wsb:bnkBorcsorgulama soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<sozlesmeNo xsi:type="xsd:string">?</sozlesmeNo>
<bankaKodu xsi:type="xsd:string">?</bankaKodu>
<anahtar xsi:type="xsd:string">?</anahtar>
</wsb:bnkBorcsorgulama>
</soapenv:Body>
</soapenv:Envelope>
On the other hand, I got the request of the message from Fiddler using the BizTalk , and the generate xml of the BizTalk schema without the data type.
<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsb="WSBanka">
<soapenv:Header/>
<soapenv:Body>
<wsb:bnkBorcsorgulama>
<sozlesmeNo>?</sozlesmeNo>
<bankaKodu>?</bankaKodu>
<anahtar>?</anahtar>
</wsb:bnkBorcsorgulama>
</soapenv:Body>
</soapenv:Envelope>
In SoapUi, if I remove a datatype from the message, I will get same error from the BizTalk request.
I read some articles that rpc/encoded style are not supported but I am not sure and these articles are not clear.
I also read that it was supported with Soap adapter but now it is deprecated.
So, Is there any one has an experience in rpc/encoded style messages and how to handle these message in BizTalk or is there any work around to handle these messages?
Your inputs really appreciate it.
Thanks in advance,
When you see answers and helpful posts, please click Vote As Helpful, Propose As Answer, and/or Mark As AnswerHi,
Please refer to the document which might help you:
#RPC/Encoded Style
http://www.c-sharpcorner.com/UploadFile/martinkropp/DesigningInteroperableWebService11232005044847AM/DesigningInteroperableWebService.aspx -
How to handle the OK button of the parameters prompt of a crystal report
Hi,
how to handle the OK button of the parameters prompt of a crystal report in vba.NET?
I want to use the parameter prompt from the crystal report itself and I want to know when the report is ready. I need to export programatically by sending email to a list of employees after the parameters has been set. The emails I send depends on the results of the report.
Im using a CrystalReportViewer control in VS2010 and Crystal Report for VS2010 v13.0.1.220.Right. But the parameter screen is driven by the viewer. Unless you create your own parameter screen and pass the parameters to the report via code.
Another thing I am not sure about:
"Then by code I want to read all the employees id from the report and send email to them with specified pages of the report. (1 page per employee)"
How do you plan on reading the employee ID from the report? I am not aware of any API that will read a value in a report so that you can then decide what page to send to whom.
I think you're approaching this kinda backwards. A question to ask is; can you do what you are trying to do in code in the CR designer? If not, using APIs will not work either. I suspect your approach should be a report that uses an employee filter. Run the report for employee x, get the report populated with the data for that employee and email it. Repeat for employee x1, employee x2, etc.
- Ludek
Maybe you are looking for
-
We have Firefox 10.o on our Macbook Pro OS X 10.5.8. I prefer using Firefox as my browser but my husband prefers Safari for now because of a long history of bookmarks and saved information he doesn't have time to re-do. He is tired of Firefox automat
-
I need to find two kinds of method calls that use early binding in Java. I would like to know if my ideas are correct: I think overloaded functions uses early binding, because the compiler looks at the types of the parameter variables. I think static
-
[Help]How can I power on or power off the specpum through GPIB by VC6.0 ?
[Help]How can I power on or power off the specpum through GPIB by VC6.0 ? [帮助]如何在VC6.0环境下通过GPIB卡开关频谱分析仪的电源? For this is my first programme, thus ,I have no idea how to write code, and don't know the heaer files and DLL files to be included or impor
-
Printers not showing in Devices and Printers menu
Hello all, When adding a new network printer, users are able to add the printer and install the driver. The printer appears to install successfully: can be printed to from documents (Word, Excel etc), appears in Device Manager, appears in Print Manag
-
My ipod touch (5th gen) shut off and its not turning back on. what do i do?
My iPod touch was half way charged when left to school. then when I came back I thought it was turned off but when I clicked my home button a couple of times I noticed that there was something wrong. I tried to hold the power button, I tried to hold