SRM 7.0 catalog call, method launch_catalog
Hi,
can anyone tell me, how to call a catalog in web dynpro for Abap? I want to call al catalog similar to SRM 7.0.
In SRM 7.0 the class /SAPSRM/CL_CH_WD_NAVI_SERV and the method LAUNCH_CATALOG is used to call a catalog.
Does anyone have an example how to use this class/methode, especially for HOOK_URL.
The catalog I want to call is defined in the IMG under "Web-Services: ID and Description".
Best regards,
Elke
Hi Jason,
I am also facing the same concern. I have done all the below configurations
1.) As per the SAP note 1643978, I have configured the Launch catalog in LPD_CUST
2.) And the group access has also been assigned to the user as per the above note
3.) In reference to the folder permissions on portal content, the access has been given according to the note - 1260119
After doing all the changes, the external punch out catalog links are still dead. Could you please advise if there is any other activity which needs to be performed. Thanks in advance for your help.
Best Regards,
Bharathi
Similar Messages
-
SRM-MDM Dynamic catalog call structure and implicit search criteria
Hi experts,
We need to define the catalog call criteria for the SRM-MDM.
Our client requires content visualitzation restrictions but there is not any logic indentified to determine the records that must be viewed for every user.
Now, in their Non-SAP catalog, they are using users lists to which they assign the catalog records.
There are more than 150 users lists and is posible too to assign some catalog records to only 1 or 2 users, by user id.
We want to reproduce this scenario in SRM-MDM.
We are analysing two alternatives:
First alternative: badi BBP_CAT_CALL_ENRICH implementation for mask dynamic determination and custom z.
We've though in creating one mask for every user list.
Then, in SRM create a custom table with the userid and the user list id (mask equivalent). A user can belong to more than one user list.
Finally implement the BBP_CAT_CALL_ENRICH, searching in the z table the users id and obtaining the specific masks for this users and pass these masks as catalog call parameters dynamicly.
Is posible to use the BBP_CAT_CALL_ENRICH badi to pass dynamic parameters?
(in this case, maybe we could use a new org.est. attibute to assign user id and mask, instead of the custom table).
Second aternative: implicit search criteria based on a new org. est. atribute for mask
Is posible to create new implicit search criteria for org. est. atributes?
We could assign to every user the masks in the org. est. and then, create a new parameter which could look for the mask value in the org.est.
Thanks in advanceHi Silvia,
I am not sure of the answer to the second part of the query but as for the usage of the BBP_CAT_CALL_ENRICH catalog in combination with various masks for the users to access catalog subsets, this should work quite well, best to try it out in a DEV environment and see how it goes.
Regards,
Jason -
Definition of SRM Backend URL when calling a shop
Hi,
we installed the SRM portal and SRM 7.0 Backend on a server with full qualified host name "internal.server.int". The portal and the backend are accessed by the customer (internal network) with URLs "srmportal.company.com" and "srmbackend.company.com". Most stuff works fine, but when calling an external shop, the application /sap/sapsrm/outbound_hdlr is being called with the hostname "internal.server.int" and not with srmbackend.company.com as it should be. Therefore SSO is not working and the user is being asked to logon with password and username. When accessing the portal with the original server ID, everything works fine.
We changed the parameters
gw/alternative_hostnames
icm/host_name_full
to "srmbackend.company.com" but still the application /sap/sapsrm/outbound_hdlr is being called wit the wrong URL.
Now my question is where the information of hostname and port is being taken from to call the application /sap/sapsrm/outbound_hdlr. Is it a profile parameter or customizing or...?
Thanks a lot for your help,
FabianHi,
we changed the two parameters in the Catalog Call Structure:
BYPASS_INB_HANDLER X (Fixed Value)
BYPASS_OUTB_HANDLER X (Fixed Value)
Now it seems to work.
Thanks to all,
Fabian -
XSRF error when returning to SRM from external catalog
Hello,
We recently applied support package stack 19 to our SRM 5.0 development system, and after doing so found that some of our configured catalogs began producing an XSRF error when attempting to populate the SRM shopping cart with items from the catalog. The symptoms encountered are practically identical with those described in Note 1615697 ("Return to SRM application from Catalogs result in Dump"). This error did not occur prior to applying support packages.
In an effort to resolve the problem, we applied the following Notes that described the same or similar symptoms:
1551982: Cross Site Request Forgery Protection for stateless BSP
1596088: frequent dumps in ITS services
1607780: Update #5 to security note 1522651
1613427: ITS Services lead to XSRF Dumps
1615697: Return to SRM application from Catalogs result in Dump
1619323: Frequent Dump issue in ITS
1621525: Dump in Vendor list service
1629031: BBP_BACKGROUND_APPROVAL service results in dump
1632110: Quotation search help fields results in a Dump
1634612: Frequent Dump issue in ITS in Search screens
1650207: BBP_POC service results in XSRF dump
1658516: Applets sheitern an XSRF-Schutz (COOKIE_NOT_FOUND)
1675491: ITS: CALL BROWSER and termination of a session
This did result in some of our catalogs working that previously were dumping, but we are still having issues with at least two and possibly other catalogs. These are external vendor catalogs using the OCI interface.
The error occurs at the time of transmitting items from the catalog back into the SRM shopping cart. The catalog screen is replaced with an error screen with the messages "The URL https://<<our SRM dev system>>:/sap/bc/gui/sap/its/bbpsc03/ was not called due to an error" and "A:ITS_P:019 XSRF no sec_sesstoken". The shopping cart in the SRM system is lost after this error occurs. No short dump is recorded, but the SM21 system log records the ITS_P 019 error against tcode BBPSC03, program SAPLBBP_SC_UI_ITS.
Most of our catalogs, internal and external, are fine after applying the Notes. Just two external vendor catalogs still exhibit this error.
I experimented with adding a new parameter after the Return URL in the catalog configuration in SPRO with name = ~SAP_SESSTOKEN, value = `SAP_SESSTOKEN`, and type = SAP Field, based upon Note 1481392, but this did not make any change in the behavior.
I have patched the kernel (7.00) to pl335 (pl310 is delivered with sps19).
Anyone else having this sort of issue?
Best regards,
MattHi,
What is the error/message you are getting?Please xplain in detail.
Also see these related threads for more pointers:
External Catalog gives HTTP 404 not found error on return
External catalog set-up
External Catalog integration with SAP
Re: OCI External Catalog and Shopping Cart Mapping
Help - Error while transferring item to shopping cart from external catalog
BR,
Disha.
DO reward points for useful answers. -
Catalog Call Structure Thumbnail
Hello all. Years ago, I added thumbnails of company logos to catalog call links in the shopping wizard. This was probably SRM 3.0 or so...I'm pretty sure I used "Path for Symbol for Service" in the Define External Web Services field. Now, with webdynpro, the documentation isn't changed at all. I think this is pointing to a folder from the old ITS. They wouldn't just let functionality just drop out like that would they? Anybody know how this might be easily done today? (SRM 7.0)
Hi Galen,
I was not aware of this functionality, however, in most cases, the requirement for company logos is in the catalog application so it may be that with the introduction of WD UI this was missed.
Regards,
Jason -
Product catalog call structure config
For each catalog there is a call structure defined in SAP SRM , My question is i have a Product catalog created in system with Logical system as XYZ SAPR/3 ( this is under subscreen techinical settings) ... after some days some budy changed it with different sap logical system how to track the change in call structure technical setting parameter. Is there any standard report to track the changes in product catalog call structure config.
Hi
A change to the logical system in catalog call structure would have to have an associated change request in the TMS, perhaps you can check there with the transport admin as to who changed the BBP_WS_VC cluster.
Regards,
Jason -
Call method "cl_alv_table_create= create_dynamic_table"
Hi SDN Community,
Is it possible to create dynamic tables. I tried it by call method "cl_alv_table_create=>create_dynamic_table", but the "new_table" of output parameters is empty after the call is executed.
Please suggest.
Thank You.
Pankaj.Hi Pankaj,
Try the code written below and let me know whether it works?
report z_dynamic_itab_test .
include z_table_fs_top.
include z_table_fs_forms.
initialization.
perform clear_fields.
start-of-selection.
perform fetch_data.
end-of-selection.
*& Include Z_TABLE_FS_TOP
Type Pools *
type-pools: slis,
rsds.
Tables *
tables :sscrfields, "Fields on selection screens
dd03l. "Table Fields
Types *
types: begin of t_dd03l,
tabname like dd03l-tabname, "Table Name
fieldname like dd03l-fieldname, "Field Name
keyflag like dd03l-keyflag, "Key Flag
rollname like dd03l-rollname, "Roll Name
position like dd03l-position, "Position
ddtext(30), "Description
end of t_dd03l.
types : begin of t_fname, "To hold the field names
fld like dd03l-fieldname,
end of t_fname.
Internal Tables *
data : it_dd03l type table of t_dd03l, "To hold the field names of dd03l.
it_flds type table of rsdsfields, "To hold the field names
it_fields type table of dd03l, "To hold the field names
it_cat type table of lvc_s_fcat, "To hold Field Catalog
it_fname type table of t_fname.
Work areas *
data: wa_dd03l like line of it_dd03l, "Workarea for IT_DD03L
wa_flds like line of it_flds, "Workarea for IT_FLDS
wa_fields like line of it_fields, "Workarea for IT_FIELDS
wa_cat like line of it_cat , "Workarea for IT_CAT
wa_fname like line of it_fname. "Workarea for IT_FNAME
*SELECTION SCREEN WITH BLOCK DEFINITION.
selection-screen begin of block b2 with frame title text-004.
parameters: p_tbname type dd03l-tabname.
select-options: s_field for dd03l-fieldname no intervals.
selection-screen end of block b2.
Variables *
data : lv_where type string,
lv_cnt type i value '1',
v_records type i.
data : gv_where_cl(100) type c. "Variable to hold Where clause
data: wa_flname(5) type c.
data: wa_fldcat type lvc_s_fcat.
data: it_fldcat type lvc_t_fcat.
data: it type ref to data.
DECLARATION OF FIELD SYMBOLS :
field-symbols: <fs_table> type table.
field-symbols: <fs_temp> type any,
<fs_final> type any.
*& Include Z_TABLE_FS_FORMS
*& Form clear_fields
To clear all work areas and refresh all internal tables.
form clear_fields .
clear wa_dd03l.
clear wa_flds.
clear wa_fields.
clear wa_cat.
clear wa_fname.
refresh it_dd03l.
refresh it_flds.
refresh it_fields.
refresh it_cat.
refresh it_fname.
endform. " clear_fields
*& Form FETCH_DATA
Fetch data from different tables
form fetch_data .
describe table s_field lines v_records.
Populate it_flds from s_field, to hold the fields to be Selected.
if s_field is not initial.
loop at s_field.
wa_flname = s_field-low.
write: s_field-low.
BUILD FIELD CATALOG FOR ALL FIELDS.
wa_flds-fieldname = wa_flname.
append wa_flds to it_flds.
endloop.
endif.
Populate the Where clause as a string.
if s_where[] is not initial.
loop at s_where.
concatenate lv_where s_where-low into lv_where separated by space.
endloop.
endif.
Populate it_dd03l, to hold the field names from DD03L.
select tabname
fieldname
keyflag
rollname
position
from dd03l
into table it_dd03l
where tabname eq p_tbname
and fieldname ne 'MANDT'.
if sy-subrc = 0.
sort it_dd03l by position.
delete it_dd03l where fieldname cp '.INCLU*'. ""CP = Covers Pattern
endif.
Populate it_fname, with fields which have to be selected (entered in selection).
loop at it_dd03l into wa_dd03l.
Read table it_flds.
read table it_flds into wa_flds with key fieldname = wa_dd03l-fieldname.
if sy-subrc = 0.
Move data from it_dd03l to it_fname
wa_fname-fld = wa_dd03l-fieldname.
append wa_fname to it_fname.
clear wa_fname.
endif.
endloop.
*TO CHECK IF TABLE EXISTS.
call function 'SCPR_DB_TABLE_EXIST'
exporting
tabname = p_tbname
exceptions
tab_dont_exist = 1
others = 2.
if sy-subrc <> 0.
if sy-subrc = 1.
GIVE A POP UP.
call function 'POPUP_TO_DECIDE_INFO'
exporting
textline1 = 'Table Does Not Exist !'
titel = 'Invalid Table Name'
start_column = 25
start_row = 6.
endif.
endif.
SELECT ALL RECORDS FROM DD03L.
select *
into table it_fields
from dd03l
where tabname = p_tbname.
if sy-subrc = 0.
sort it_fields by position.
delete it_fields where fieldname cp '.INCLU*'. "CP = Covers Pattern.
endif.
Populate IT_CAT with fields which are REQUIRED.
Display upto 150 fields only.
loop at it_fields into wa_fields to 150.
Read table it_fname
read table it_fname into wa_fname with key fld = wa_fields-fieldname.
if sy-subrc = 0.
Move data from it_fields
wa_cat-tabname = p_tbname.
wa_cat-fieldname = wa_fields-fieldname.
wa_cat-col_pos = lv_cnt.
wa_cat-inttype = wa_fields-inttype.
wa_cat-datatype = wa_fields-datatype.
wa_cat-intlen = wa_fields-intlen.
wa_cat-seltext = wa_fields-fieldname.
wa_cat-decimals = wa_fields-decimals.
wa_cat-ref_field = wa_fields-fieldname.
wa_cat-ref_table = p_tbname.
append wa_cat to it_cat.
clear wa_cat.
lv_cnt = lv_cnt + 1.
endif.
endloop.
CREATE A DYNAMIC INTERNAL TABLE.
call method cl_alv_table_create=>create_dynamic_table
exporting
it_fieldcatalog = it_cat
importing
ep_table = it.
ASSIGN IT TO <FS>.
assign it->* to <fs_table>.
*Select the data from the table given as input and populate
it into the dynamic internal table created based on the where
condition.
select (it_fname)
from (p_tbname)
into table <fs_table>
where (lv_where).
if sy-subrc <> 0.
message 'No data found' type 'I'.
endif.
*Displaying dynamic internal table .
loop at <fs_table> assigning <fs_temp>.
write:/ <fs_temp> quickinfo 'CONTENTS'.
endloop.
endform. " FETCH_DATA
Best Regards,
Deepa Kulkarni -
SRM validate the Catalog Item when copying from old templates
Do SRM validate the Catalog Item when copying from old templates and previous shopping carts? Is this standard functionality?
Thanks,
RajanContinuation to my previous post:
My findings based on the analysis I did. Might help people who are looking for similar info.
As Jason mentioned, the Subroutine name is CATALOG_CONTENT_VALIDATE_GET
This is under package BBP_SC --> Function Group: BBP_SC_APP
After making a webservice call to get catalog details, the mapping is done as below.
IF sy-subrc EQ 0.
READ TABLE lt_enriched_item INDEX 1.
IF sy-subrc EQ 0.
ls_item_validate-price = lt_enriched_item-price.
ls_item_validate-currency = lt_enriched_item-currency.
ls_item_validate-price_unit = lt_enriched_item-price_unit.
ls_item_validate-deliv_date = lt_enriched_item-deliv_date.
ls_item_validate-leadtime = lt_enriched_item-leadtime.
ls_item_validate-unit = lt_enriched_item-unit.
ELSE.
lv_validate_item_exception = gc_yes.
ENDIF.
ELSE.
lv_validate_item_exception = gc_yes.
ENDIF.
If you go one level deeper into subroutine PERFORM sc_itm_copy_to_basket, you can see that following validations are performed.
If EITHER price, currency or price unit changes, we get the message u201C&: Price changed due to catalog validationu201D
If UOM changes, we get the message u201C&: Unit of measure changed in catalog; item not transferredu201D
When Delivery date or lead time changes, no message is raised but the new values are copied.
In a nut shell, the fields that are considered for validation are Price, Currency, Price Unit, UOM, Delivery date, Lead Time.
Thanks,
Seyed -
Error calling methods CL_GUI_FRONTEND_SERVICES
Hi all,
I have a requirement in BAPI (integrating solman to portal) to download file from app. server to local directory. I used the below FM to get temp directory of presntation server.
CALL METHOD CL_GUI_FRONTEND_SERVICES=>GET_TEMP_DIRECTORY
CHANGING
TEMP_DIR = LV_TEMP_DIR
EXCEPTIONS
CNTL_ERROR = 1
ERROR_NO_GUI = 2
NOT_SUPPORTED_BY_GUI = 3
others = 4.
CALL METHOD cl_gui_cfw=>flush.
It works fine in R3, but when i called it from portal it shows Access not possible using 'NULL' object reference with a short dump .
st22 shows
Error in ABAP application program.
The current ABAP program "CL_GUI_FRONTEND_SERVICES======CP" had to be
terminated because one of the
statements could not be executed.
This is probably due to an error in the ABAP program.
An exception occurred. This exception is dealt with in more detail belo
. The exception, which is assigned to the class 'CX_SY_REF_IS_INITIAL',
neither
caught nor passed along using a RAISING clause, in the procedure
"GET_TEMP_DIRECTORY" "(METHOD)"
Since the caller of the procedure could not have expected this exceptio
to occur, the running program was terminated.
The reason for the exception is:
Attempt to access a component using 'NULL' object reference (points
to nothing).
An object reference must point to an object (an instance of a class)
before you can use it to access components (variable:
"CL_GUI_FRONTEND_SERVICES=>HANDLE").
Either the reference has not yet been set, or it has been reset to
'NULL' by a CLEAR statement.
When i put external break point and the dump comes during execution of CALL METHOD cl_gui_cfw=>flush.
Is it not possible to use CL_GUI_FRONTEND_SERVICES in RFC ??.
thanks and regards
JijoHi,
the dump is because you cannot use that function from a BSP application, which runs in internet or intranet. The procedure in this case is different:
DATA: flights TYPE flighttab,
flight LIKE LINE OF flights,
appl TYPE string,
filetype TYPE string,
output TYPE string,
output2 TYPE xstring,
response TYPE REF TO if_http_response,
l_len TYPE i,
seatsmax TYPE string,
seatsocc TYPE string.
appl = 'application/msexcel'.
filetype = 'attachment;filename=mi archivo.xls'.
SELECT * FROM sflight
INTO TABLE flights
UP TO 20 ROWS.
LOOP AT flights INTO flight.
seatsmax = flight-seatsmax. CONDENSE seatsmax.
seatsocc = flight-seatsocc. CONDENSE seatsocc.
CONCATENATE output
flight-carrid cl_abap_char_utilities=>horizontal_tab
flight-connid cl_abap_char_utilities=>horizontal_tab
flight-fldate cl_abap_char_utilities=>horizontal_tab
flight-planetype cl_abap_char_utilities=>horizontal_tab
seatsmax cl_abap_char_utilities=>horizontal_tab
seatsocc cl_abap_char_utilities=>horizontal_tab
cl_abap_char_utilities=>cr_lf
INTO output.
ENDLOOP.
response = runtime->server->response.
response->delete_header_field( name = if_http_header_fields=>cache_control ).
response->delete_header_field( name = if_http_header_fields=>expires ).
response->delete_header_field( name = if_http_header_fields=>pragma ).
response->set_header_field( name = if_http_header_fields=>content_type
value = appl ).
response->set_header_field( name = 'content-disposition'
value = filetype ).
CALL FUNCTION 'SCMS_STRING_TO_XSTRING'
EXPORTING
text = output
mimetype = 'text/unicode; charset=utf-16le'
IMPORTING
buffer = output2.
CONCATENATE cl_abap_char_utilities=>byte_order_mark_little
output2 INTO output2 IN BYTE MODE.
l_len = XSTRLEN( output2 ).
response->set_data( data = output2
length = l_len ).
navigation->response_complete( ).
This is the code for downloading an Excel file. -
CALL METHOD cl_gui_frontend_services= file_save_dialog
Hi,
I want to use 'CALL METHOD cl_gui_frontend_services=>file_save_dialog', to choose a path for saving my txt files. I only want the user to be able to choose the path and not have to supply a filename aswell. My filenames are standard in the program and I don't want them to be changed by the user.
Is there another method which is designed for this or is there a simple parameter I have missed?
Thanks and regards,
Simon.AT SELECTION-SCREEN ON VALUE-REQUEST FOR pa_f.
PERFORM f_search_help_pa_f1.
FORM f_search_help_pa_f1 .
CALL FUNCTION 'KD_GET_FILENAME_ON_F4'
EXPORTING
program_name = sy-repid
dynpro_number = sy-dynnr
CHANGING
file_name = pa_f
EXCEPTIONS
mask_too_long = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDFORM. " f_search_help_pa_f1
Try this
Regards -
*ERROR IN OLE CALL - METHOD CALL ERROR...*
HI ..
When trying to Upload a file using BDC with Vista OS, we are getting the following error..
ERROR IN OLE CALL - METHOD CALL ERROR...
There is no problem with BDC as its working fine with XP & other OS.
Pls help!!Seems that you are working with microsoft files.
Maybe you are using deprecated functions like WS_EXCEL -
MDM catalog Search UI is showing SRM-MDM Service catalog instead of Product
Hi Experts,
We are working on SRM7.0 with MDM. We have one Development environment where MDM is working fine.
We made a copy of Existing MDM repository to new Server and Created new SRM-MDM environment for demo setup.
We have nade SRM instance as a copy of Development and when we try to connect to the MDM after making all changes to the search ui as same as Development we are getting search UI page of catalog as SRM-MDM Service catalog instead of SRM-MDM Product catalog.
I can able to acess the new repository through MDM Data manager it is fine.
The products in repository are not displayed in search ui page as only service view of catalog is shown.
Kindly reply if you have any idea or sugession.
Regards,
B.N.Karthikeyan.Hi,
Login into the SRM -MDM repository ---> Go to General configuration settings --> select tab 'General'
On default 'Service' radio button will be seected change the the radio button to the ''Product' and save. Catalog will work as Product catalog.
Regards,
Chandolu Ramesh -
How to call methods from within run()
Seems like this must be a common question, but I cannot for the life of me, find the appropriate topic. So apologies ahead of time if this is a repeat.
I have code like the following:
public class MainClass implements Runnable {
public static void main(String args[]) {
Thread t = new Thread(new MainClass());
t.start();
public void run() {
if (condition)
doSomethingIntensive();
else
doSomethingElseIntensive();
System.out.println("I want this to print ONLY AFTER the method call finishes, but I'm printed before either 'Intensive' method call completes.");
private void doSomethingIntensive() {
System.out.println("I'm never printed because run() ends before execution gets here.");
return;
private void doSomethingElseIntensive() {
System.out.println("I'm never printed because run() ends before execution gets here.");
return;
}Question: how do you call methods from within run() and still have it be sequential execution? It seems that a method call within run() creates a new thread just for the method. BUT, this isn't true, because the Thread.currentThread().getName() names are the same instead run() and the "intensive" methods. So, it's not like I can pause one until the method completes because they're the same thread! (I've tried this.)
So, moral of the story, is there no breaking down a thread's execution into methods? Does all your thread code have to be within the run() method, even if it's 1000 lines? Seems like this wouldn't be the case, but can't get it to work otherwise.
Thanks all!!!I (think I) understand the basics.. what I'm confused
about is whether the methods are synced on the class
type or a class instance?The short answer is; the instance for non-static methods, and the class for static methods, although it would be more accurate to say against the instance of the Class for static methods.
The locking associated with the "sychronized" keyword is all based around an entity called a "monitor". Whenever a thread wants to enter a synchronized method or block, if it doesn't already "own" the monitor, it will try to take it. If the monitor is owned by another thread, then the current thread will block until the other thread releases the monitor. Once the synchronized block is complete, the monitor is released by the thread that owns it.
So your question boils down to; where does this monitor come from? Every instance of every Object has a monitor associated with it, and any synchronized method or synchonized block is going to take the monitor associated with the instance. The following:
synchronized void myMethod() {...is equivalent to:
void myMethod() {
synchronized(this) {
...Keep in mind, though, that every Class has an instance too. You can call "this.getClass()" to get that instance, or you can get the instance for a specific class, say String, with "String.class". Whenever you declare a static method as synchronized, or put a synchronized block inside a static method, the monitor taken will be the one associated with the instance of the class in which the method was declared. In other words this:
public class Foo {
synchronized static void myMethod() {...is equivalent to:
public class Foo{
static void myMethod() {
synchronized(Foo.class) {...The problem here is that the instance of the Foo class is being locked. If we declare a subclass of Foo, and then declare a synchronized static method in the subclass, it will lock on the subclass and not on Foo. This is OK, but you have to be aware of it. If you try to declare a static resource of some sort inside Foo, it's best to make it private instead of protected, because subclasses can't really lock on the parent class (well, at least, not without doing something ugly like "synchronized(Foo.class)", which isn't terribly maintainable).
Doing something like "synchronized(this.getClass())" is a really bad idea. Each subclass is going to take a different monitor, so you can have as many threads in your synchronized block as you have subclasses, and I can't think of a time I'd want that.
There's also another, equivalent aproach you can take, if this makes more sense to you:
static final Object lock = new Object();
void myMethod() {
synchronized(lock) {
// Stuff in here is synchronized against the lock's monitor
}This will take the monitor of the instance referenced by "lock". Since lock is a static variable, only one thread at a time will be able to get into myMethod(), even if the threads are calling into different instances. -
Call method http_client- response- get_header_fields for PDF and for TIFF
Hi,
I am using a Function Module..
APAR_EBPP_GET_INVOICE_DETAIL to display the TIFF images on the Biller Direct side.
The above function module is used to retrieve the PDF documents from the document repository.
In Similar way I am trying to do the TIFF Images too.
But in this method
call method http_client->response->get_header_fields
changing fields.
For PDF the table fields is as follows
NAME VALUE
1 ~response_line----
|HTTP/1.1 200 (OK) |
2 ~server_protocol----
|HTTP/1.1 |
3 ~status_code----
|200 |
4 ~status_reason----
|(OK) |
5 content-length----
|7136 |
6 content-type----
|application/pdf |
7 server |Microsoft-IIS/6.0 |
8 x-powered-by |ASP.NET |
9 date |Tue, 24 Feb 2009 18:09:35 GMT |
10 connection |close |
For TIFF the table fields are as follows:
1 ~response_line----
|HTTP/1.1 500 (internal server error) |
2 ~server_protocol----
|HTTP/1.1 |
3 ~status_code----
|500 |
4 ~status_reason----
|(internal server error) |
5 content-length----
|105 |
6 content-type----
|text/plain |
7 server----
|Microsoft-IIS/6.0 |
8 x-powered-by |ASP.NET |
9 date |Tue, 24 Feb 2009 18:26:39 GMT |
10 connection |close |
The error message is Internal Server error..
This is in HTTP2_Get Function Module.
What would be the reason for HTTP/1.1 500 Internal Server error.
Any suggestions are welcome..
Thanks,
ChaitanyaHi Niranjan,
can you please check if you have imported the whole chain of certificates. Certificates usually diplayed in 3 levels in the Explorer. like
Verisign - L1
>>> Versign-- L2
>>>>>>>>>>>>XYZ.com -- L3
Extract all the 3 certificates and Put in Strust and do exit soft and hard in SMICM and restart the service.
Its better to create a RFC destination of Type H and Do the Connection test for HTTPS configuration. If the connection test comes OK then u can be sure of the configuration. -
How to Call Methods in Ecatt?
Hello Gurus,
I dont find CALLMETHOD or CALLSTATIC commands in Ecatt. I am using R/3 4.7 version of SAP.
My question also is how to call methods. I have a scenario where my test script execution depends on the return type of method. Say if the return type of method is A only then I should run the script else the script should not be executed.
Your help in this regard is highly appreciated.
Regards,
GS.>
Get Started wrote:
> Hello Gurus,
>
> I dont find CALLMETHOD or CALLSTATIC commands in Ecatt. I am using R/3 4.7 version of SAP.
>
> My question also is how to call methods. I have a scenario where my test script execution depends on the return type of method. Say if the return type of method is A only then I should run the script else the script should not be executed.
>
> Your help in this regard is highly appreciated.
>
> Regards,
> GS.
Hi GS,
Please use the command "CallMethod" and it is available with latest SAP version.
You have to provide the Object Instance Parameter and Instance Method.
Regards,
SSN.
Maybe you are looking for
-
IPhone 5 really slow, freezing since software update
I have been beyond disapponted with the iphone 5 thus far. When i initially got it it was very slow, especially using the keyboard in messaging, and did this weird thing where it would just randomly dim and then I could not the screen to fully illumi
-
ICal wont open due to issue with Webex plugin how do i get it to open or remove plugin
Whenever I try to open iCal i get the message iCal quit unexpectedly while using the Webex Plugin plugin. don't know what to do next.
-
Hi guys, I posted this once before but don't know if anyone looked at it or not. I am getting "Jagged Edges" in .psd/ .jpg/ .tif/ .tga text files when I edit them in FCP5.1.4. What is going wrong? It is getting very frustrating for me at this point.
-
Spatial update via Java library
I'm trying to update the geometry value from null to a STRUCT geometry. This has worked fine for a long time (so the code should be OK), but suddenly it fails with the errormessage: ORA-29877: failed in the execution of the ODCIINDEXUPDATE routine OR
-
Changing search results display
When I search in my iTunes library, I hate the layout of the window that shows my results. It's confusing, and not as easy to find what I want in the results. I liked the old look better. Is there a way to change the way the results window looks.