REFRESHING FIELDS
I am using Crystal with VS 2012.
In order to use the fields in Crystal I save the Dataset as XML doc
(ie DS.WriteXml(Server.MapPath("~/Crystal/cccRptActivityOpcoCc.xml"), XmlWriteMode.WriteSchema);)
And then point the Crystal to the XML datasource and start using it. Works great!!!
My questions is if my Datasource XML changes, like I add 5 extra fields and need to modify the report,
How do I do this without destroying all the fields currently on the report from the current XML.
Like for example I already used 10 fields from the XML in the Crystal, but now there are another 5 fields but all the original 10 fields are still there.
Every time I try to update the XML with the additional field it trashes my .RPT template by removing all the XML fields I already used in the template.
Can this be avoided?
Thanks,
Yury
Hi Yury
Fields are removed if the data passed to the report are not what the report is expecting. See what happens if you point the CR designer to the new XML - I suspect you will get a message informing you that fields will be removed (runtime does not provide this message).
- Ludek
Senior Support Engineer AGS Product Support, Global Support Center Canada
Follow us on Twitter
Similar Messages
-
SRM User Cannot Refresh Field Qty if Changed
Hi Experts,
Sorry for the repost but I have not gotten an answer and still have the problem described below.
Can someone please tell me where I should start looking. Since this only affects one user i don't think its a programming issue.
Is there a particular role that drives the ability to use the refresh button?
I have a user who cannot change the qty field from the shopping cart. After making a qty change then refresh whatever qty was there remains. He can however chg the qty from the catalog before adding it to the sc.
I have compared user attributes, roles and profiles. Is there anywhere else I should check?
This also happens if I do a shop on behalf for his particular id.
Any help is appreciated.Hi Christophe,
The first step that Yann pointed out was running users_gen which indicated an error with the userid. This prompted me to recheck the user's attributes (which I had already done). The problem was the warehouse id was setup incorrectly. For example, BCAB instead of BCAB CCM.
Further, this user never actually placed an order himself. It was always someone else, a shop on behalf. I'm surprised it in the first place.
In summary, the attributes of the person placing the shop on behalf was validated even though the warehouse id of the user was wrong. Running users_gen as a first step was the key.
Again, many thanks Yann.
Jolee -
Refresh of a Report Builder Dataset does NOT show newly added field
I'm working with Report Builder 2.0 (we don't plan on getting SQL 2008 R2 - so NO 3.0 for us!) and have found that if I have an existing report using an existing stored procedure (it has 4 existing parameters) and I add a new field to the stored procedure
it will not refresh the
data set. I have gone to the DataSet properties and executed the query(SPROC) where it does show the new field (so I know the sproc will
execute), but when I click OK and hit Refresh Fields it stops responding. I also tried the same steps without the Refresh Fields and still stops responding. I also tried to add the field name and it errored out as invalid.
The only work around I've found is to
create a new dataset referencing the updated SPROC with a different name, deleting the old dataset and then re-naming the newer dataset with the old
one's name so all the field references are the same. I do know that in the case of renaming
a field in a sproc that this would end BADLY because there is no way any of the old field's references would work.
But it seems odd I have to go through so much to refresh for new fields, so perhaps I'm missing a step in dealing with this situation. Any recommendations would be appreciated.Hi CinBH,
I understand that the Report Builder 2.0 hangs while flush the dataset by executing the query. In that case, I think it is necessary to capture a user dump when the problem occurred. And then, you can send the dump to Microsoft CSS support. Support Professionals
from Microsoft will assist you to solve the problem.
I am providing the steps below for you to gather the hang dump or crash dump to further work on this issue,
Hang dump,
a. Open Report Builder as usual, and wait for a while.
b. When you found that the Report Builder application hang, and was not responding, please open TaskManager by one of follws,
- Pressing “Ctrl + Alt + Del” button and then click “Start Task Manager” item.
- Or right-clicking your task bar, click “Start Task Manager”menu.
c. Once the Task Manager opened, switch to Process tab, find the “Report Builder” process MSReportBuilder.exe.
d. Right-click the item, click Create dump file.
e. After that, it will prompt a window and let you know the location of the dump file.
You can copy the hang dump or crash dump file to your development machine configured with symbols files, and open it in Visual Studio 2008. Next, you can analyze the error / exception, and call stacks to see why the error happens.
Thanks,
Eileen -
When we upgraded our SSRs projects to 2012, we are facing an issue in Data tools environment.
When we click REFRESH FIELDS button in Dataset properties, With query type as SP (For all our sps), the "Define query parameters" popup is not displayed.
When we checked the SQL Profiler for queries executed at back end , NULL values are used for parameters.
But when we Used the QUERY DESIGNER button, and clicked execute for sp, the popup comes.
For User defined Functions, the Popup comes correctly.
In BIDS, still we can open the RDLs and do the operations correctly
Please adviceDear Wendy Fu
My Scenario is different.
In Query Designer, Every thing is fine (Parameter Popup is coming, and fields are populated under data set)
But what we need to do is
1, Select Query Type As SP
2, Select the required SP
3, Click Refresh Button
4, A "Define
query parameters" window popsup
5, Provide values and click Ok
6, Fields will be populated under the dataset
The issue we face is that, we are not getting the Define query parameters popup,
Hence NULL values are passed to execute the sp, to retrieve the fields set.
The Work around we are using now is editing the sp, and use
set @Parameter = Value
for each parameters in sp, and then we get the fields populated under dataset, when we click refresh.
The issue exists in both MSDT for
Visual studio 2010 & MSDT for Visual studio 2012.
But every thing is fine in BIDS with VS 2008 Shell for the same RDL -
Production Order - Trigger won't Auto Refresh
2007A PL49 - Just upgraded from 2005A
I have the following query set in a UDF on the Production Order.
SELECT T1.PriceAfVAT
FROM ORDR T0 INNER JOIN RDR1 T1 ON T0.DocEntry = T1.DocEntry
WHERE T1.ItemCode = $[$-6.0.0] and T0.DocNum = $[$-32.0.0]
The query wasn't working after the upgrade from 2005. I had to change the query to include the negatives "-" in the WHERE clause. Once I did this the query was working fine. However, now that the query is working it doesn't refresh automatically.
My settings are as follows:
Auto Refresh When Field Changes is selected
The field is Production Order Origin Number
Display Saved User-Defined Values is selected
If I place my cursor in the UDF and hit Shift+F2 the query is executed and pulls in the correct data.
How do I get the Auto Refresh functionality to work properly?
Note: other triggers are working correctly after the upgrade.The problem is probably you selected Auto Refresh Field Changes as the same field in the Where clause. If you could find any other fields to select, it should work.
Thanks,
Gordon -
How long does it take for the custom field created in SFDC to show up in the field mapping list? I hit the refresh field button, but it is not showing up after 5 min. Do I just need to have patience?
Hi,
What do you have to do to the field in SFDC to make it accessible so that it shows up in the Eloqua field mapping area as a field to be mapped? -
Why doesn't SSRS like an IF Statement in my SQL Stored Procedure???
I have multiple IF Statements at the end of my SQL Stored Procedure Process that utilizes a @ReportTypeName Parameter to produce the chosen report result set
IF @ReportTypeName = 'HMO-POS New To HFHP - No Prior Year Member Spans'
BEGIN
SELECT DISTINCT
[#TempTable_Distinct_Individual_Member_All_Info].[INDV Member Contract Nbr],
[#TempTable_Distinct_Individual_Member_All_Info].[INDV Member Subscriber Member Nbr],
[#TempTable_Distinct_Individual_Member_All_Info].[INDV Benefit Pkg],
[#TempTable_Distinct_Individual_Member_All_Info].[INDV Benefit Plan Name],
[#TempTable_Distinct_Individual_Member_All_Info].[INDV Division Nbr],
[#TempTable_Distinct_Individual_Member_All_Info].[INDV MEMBER EFF DATE],
[#TempTable_Distinct_Individual_Member_All_Info].[INDV MEMBER NBR],
[#TempTable_Distinct_Individual_Member_All_Info].[INDV MEMBER FIRST NAME],
[#TempTable_Distinct_Individual_Member_All_Info].[INDV MEMBER LAST NAME],
[#TempTable_Distinct_Individual_Member_All_Info].[INDV Broker Name],
[#TempTable_Distinct_Individual_Member_All_Info].[INDV MEMBER ADDRESS 1],
[#TempTable_Distinct_Individual_Member_All_Info].[INDV MEMBER CITY],
[#TempTable_Distinct_Individual_Member_All_Info].[INDV MEMBER STATE],
[#TempTable_Distinct_Individual_Member_All_Info].[INDV MEMBER ZIPCODE],
[#TempTable_Distinct_Individual_Member_All_Info].[INDV MEMBER PHONE1],
[#TempTable_Distinct_Individual_Member_All_Info].[INDV MEMBER PHONE2],
[#TempTable_Distinct_Individual_Member_All_Info].[INDV MEMBER PHONE3],
[#TempTable_Distinct_Individual_Member_All_Info].[INDV MEMBER EMAIL],
CONVERT(VARCHAR,CAST(CONVERT(VARCHAR, [#TempTable_Distinct_Individual_Member_All_Info].[INDV MEMBER YMDBIRTH]) AS DATETIME),101) AS [INDV MEMBER BirthDate],
FLOOR((CAST (GETDATE() AS INTEGER) - CAST(CONVERT(DATETIME, CONVERT(CHAR(8), [#TempTable_Distinct_Individual_Member_All_Info].[INDV MEMBER YMDBIRTH])) AS INTEGER)) / 365.25) AS [INDV MEMBER AGE]
FROM [#TempTable_Distinct_Individual_Member_All_Info]
WHERE (CHARINDEX('HMO',LTRIM(RTRIM([#TempTable_Distinct_Individual_Member_All_Info].[INDV Benefit Plan Name])),1) > 0
OR CHARINDEX('POS',LTRIM(RTRIM([#TempTable_Distinct_Individual_Member_All_Info].[INDV Benefit Plan Name])),1) > 0)
AND [#TempTable_Distinct_Individual_Member_All_Info].[INDV MEMBER NBR] NOT IN
(SELECT [#TempTable_Distinct_Individual_Member_Prior_Year_Spans].[INDV MEMBER NBR]
FROM [#TempTable_Distinct_Individual_Member_Prior_Year_Spans])
ORDER BY [#TempTable_Distinct_Individual_Member_All_Info].[INDV MEMBER NBR]
END
IF @ReportTypeName = 'HMO-POS Renewals'
BEGIN
SELECT DISTINCT
[#TempTable_Distinct_Individual_Member_All_Info].[INDV Member Contract Nbr],
[#TempTable_Distinct_Individual_Member_All_Info].[INDV Member Subscriber Member Nbr],
[#TempTable_Distinct_Individual_Member_All_Info].[INDV Benefit Pkg],
[#TempTable_Distinct_Individual_Member_All_Info].[INDV Benefit Plan Name],
[#TempTable_Distinct_Individual_Member_All_Info].[INDV Division Nbr],
[#TempTable_Distinct_Individual_Member_All_Info].[INDV MEMBER EFF DATE],
[#TempTable_Distinct_Individual_Member_All_Info].[INDV MEMBER NBR],
[#TempTable_Distinct_Individual_Member_All_Info].[INDV MEMBER FIRST NAME],
[#TempTable_Distinct_Individual_Member_All_Info].[INDV MEMBER LAST NAME],
[#TempTable_Distinct_Individual_Member_All_Info].[INDV Broker Name],
[#TempTable_Distinct_Individual_Member_All_Info].[INDV MEMBER ADDRESS 1],
[#TempTable_Distinct_Individual_Member_All_Info].[INDV MEMBER CITY],
[#TempTable_Distinct_Individual_Member_All_Info].[INDV MEMBER STATE],
[#TempTable_Distinct_Individual_Member_All_Info].[INDV MEMBER ZIPCODE],
[#TempTable_Distinct_Individual_Member_All_Info].[INDV MEMBER PHONE1],
[#TempTable_Distinct_Individual_Member_All_Info].[INDV MEMBER PHONE2],
[#TempTable_Distinct_Individual_Member_All_Info].[INDV MEMBER PHONE3],
[#TempTable_Distinct_Individual_Member_All_Info].[INDV MEMBER EMAIL],
CONVERT(VARCHAR,CAST(CONVERT(VARCHAR, [#TempTable_Distinct_Individual_Member_All_Info].[INDV MEMBER YMDBIRTH]) AS DATETIME),101) AS [INDV MEMBER BirthDate],
FLOOR((CAST (GETDATE() AS INTEGER) - CAST(CONVERT(DATETIME, CONVERT(CHAR(8), [#TempTable_Distinct_Individual_Member_All_Info].[INDV MEMBER YMDBIRTH])) AS INTEGER)) / 365.25) AS [INDV MEMBER AGE]
FROM [#TempTable_Distinct_Individual_Member_All_Info]
INNER JOIN [#TempTable_Distinct_Individual_Member_Prior_Year_Spans]
ON [#TempTable_Distinct_Individual_Member_Prior_Year_Spans].[INDV MEMBER NBR] = [#TempTable_Distinct_Individual_Member_All_Info].[INDV MEMBER NBR]
WHERE (CHARINDEX('HMO',LTRIM(RTRIM([#TempTable_Distinct_Individual_Member_All_Info].[INDV Benefit Plan Name])),1) > 0
OR CHARINDEX('POS',LTRIM(RTRIM([#TempTable_Distinct_Individual_Member_All_Info].[INDV Benefit Plan Name])),1) > 0)
ORDER BY [#TempTable_Distinct_Individual_Member_All_Info].[INDV MEMBER NBR]
END
Microsoft Visual Studio and SQL Server Reporting Services did not like this! When I added my dataset and parameters accordingly, my Dataset had no fields...almost as if running the Stored Procedure in the background to get its Metadata was not working. I
know this works because I tested it as a result of a straight EXEC Command. Why doesn't Microsoft Visual Studio and SQL Server Reporting Services not like this IF? I did end up getting around this by parameterizing the WHERE clause based on the @ReportTypeName
chosen.
WHERE (@ReportTypeName = 'HMO-POS New To HFHP - No Prior Year Member Spans'
AND (CHARINDEX('HMO',LTRIM(RTRIM([#TempTable_Distinct_Individual_Member_All_Info].[INDV Benefit Plan Name])),1) > 0
OR CHARINDEX('POS',LTRIM(RTRIM([#TempTable_Distinct_Individual_Member_All_Info].[INDV Benefit Plan Name])),1) > 0)
AND [#TempTable_Distinct_Individual_Member_All_Info].[INDV MEMBER NBR] NOT IN
(SELECT [#TempTable_Distinct_Individual_Member_Prior_Year_Spans].[INDV MEMBER NBR]
FROM [#TempTable_Distinct_Individual_Member_Prior_Year_Spans]))
OR (@ReportTypeName = 'HMO-POS Renewals'
AND (CHARINDEX('HMO',LTRIM(RTRIM([#TempTable_Distinct_Individual_Member_All_Info].[INDV Benefit Plan Name])),1) > 0
OR CHARINDEX('POS',LTRIM(RTRIM([#TempTable_Distinct_Individual_Member_All_Info].[INDV Benefit Plan Name])),1) > 0)
AND [#TempTable_Distinct_Individual_Member_All_Info].[INDV MEMBER NBR] IN
(SELECT [#TempTable_Distinct_Individual_Member_Prior_Year_Spans].[INDV MEMBER NBR]
FROM [#TempTable_Distinct_Individual_Member_Prior_Year_Spans]))
I appreciate your review and am hopeful for a reply.
Thanks!Hi ITBobbyP,
I have tested on my local environment and can reproduce the issue, the issue can be caused by the temp table you are using which will also cause the data not display.
I have use below sample table and record to have a test and details information below for your reference:
Right click the DataSet to select the "DataSet Properties" and click the query designer to execute the stored procedure by click the "!" to check if you can get the data:
If you got some error, the issue can be cause by the temp table invalid, so please make sure you have add the query to create and insert recored to temp table like below:
CREATE PROCEDURE vickytest0311_1
@ReportTypeName nvarchar(50)
AS
create table #VickyTest
column1 int,
column2 varchar(20)
insert into #VickyTest values (1,'Test1')
insert into #VickyTest values (2,'Test2')
insert into #VickyTest values (3,'Test3')
IF @ReportTypeName ='Test1'
BEGIN
select * from #VickyTest
where Column1=1
END
IF @ReportTypeName ='Test2'
BEGIN
select * from #VickyTest
where Column1=2
END
GO
3. I recommend you to not use the temp table and you will not need to add the create and insert statement in the stored procedure.
4. If you still got no data, please try to click the "Refresh fields" as below:
If you still have any problem, please feel free to ask.
Regards,
Vicky Liu
Vicky Liu
TechNet Community Support -
From ALV list to Selection-screen
Hi,
I have problem in coming back to selection screen after displaying ALV List.
In ALV list i'm using check box option to delete selected records. After deletion I'm displaying the remaining records with one more call to ALV function module.
As this is not a secondary list i'm not able to use SY-LSIND and even call selection-screen or leave to screen 0 are not working.
could you please help me out.
Thanks,
Vinay.Hi
You don't have to show the remaining records in another ALV.
In the user command sub-routine we will be passing the parameter RS_SELFIELD TYPE SLIS_SELFIELD.
When you delete the rows from the internal table in the user command set the refresh field to on.
RS_SELFIELD-REFRESH = 'X'.
Please let me know if it works.
Thanks,
Naren -
UDF Value is not coming in the query report
Hi all,
i have designed query report based on AR Invoice which has some UDF .
all udf have FMS applied and all these udf has values.
when i run report some times udf values are coming in the report and somtimes not even if udf contains values.
if i open perticular invoice and again update that udf and again run report now udf value will come in the report.
every time i need to manualy update the udf even if that udf contain value.
how to avoide this problem.
Pls suggest solution.
Regards,
ChetanHi Chetan,
Try this,
-> Open the require document(module).
Assign this procedure and then ADD the document
and Run the Query Report.
1. Goto the UDF and Click (ShiftAltF2).
2. Select the SEARCH BY SAVED QUERY.
3. Assign the FMS Query in UDF.
4. Select the AUTO REFRESH WHEN FIELD CHENGES.
5. Select the Auto Refresh Field (for example CardCode (or) Remarks).
6. Check the Display Saved Values.
OR
-> Open the require document(module).
1. Goto the UDF and Click (ShiftAltF2).
2. When will you add the document at that time
you can Click the SHIFT + F2 and than ADD the document.
and than Run the Query Report.
Regards,
Madhan. -
Hi,
I need to export the content of a excel file to an internal table.
I looked for it and I found some samples. But they opened the excel file.
My excel file comes from upload and I have it in a xstring variable.
The functions for excel expect for a file name, but I have the xstring only.
Are there functions (to export the content to an internal table) that expect a xstring as a parameter?
Thanks a lot.
Best Regards,
Jorge Luizhi,
I am uploading excel file. Ensure that columns in your excel are exactly present in the internal table structure that you use.
I am using a TabDelimeted file as input for the below mention case .
Declare context node FILE
with Attributes:
Filename type String
MimeType type String
FILE type xstring.
Place 'Fileupload UI element' on you view , bind DATA property to Attribute u2018FILEu2019 created in the context node.
Create a Button lets call UPLOAD. on its click action put the following code.
method upload_file .
data: s_cont type string,
x_cont type xstring,
convt type ref to cl_abap_conv_in_ce,
item_file type xstringval.
data: input_string type string,
fields type string_table,
fields2 type string_table,
tbl_fields type string_table,
s_table type string_table,
ls_table like line of s_table,
ls like line of fields,
lv_num_cols type i.
data: lt_data type table of ZMYREC, "here
ls_data like line of lt_data,
lv_data type string.
field-symbols: <wa_table> like line of s_table.
wd_this->m_elem_file->get_attribute(
exporting
name = `FILE`
importing
value = item_file ).
convt = cl_abap_conv_in_ce=>create( input = item_file ).
convt->read( importing data = s_cont ).
"Column headers
split s_cont at cl_abap_char_utilities=>cr_lf into table s_table.
read table s_table into ls_table index 1.
"Delete column header
delete s_table index 1.
split ls_table at cl_abap_char_utilities=>horizontal_tab into table fields.
lv_num_cols = lines( fields ).
refresh fields.
loop at s_table assigning <wa_table>.
split <wa_table> at cl_abap_char_utilities=>horizontal_tab into :
ls_data-recordid
ls_data-bstkd
ls_data-kunnr
ls_data-matnr
ls_data-candno
ls_data-fname
ls_data-inits
ls_data-lname
ls_data-gesch.
append ls_data to lt_data.
clear ls_data.
endloop.
wd_this->m_node_data->bind_table(
exporting
new_items = lt_data
set_initial_elements = abap_true ).
endmethod.
I hope it helps.
Thanx. -
Getting an error in the preview but no errors or warnings in the error list
I've got a SSRS report, originally written using SQL Server 2005, that I just upgraded to SQL Server 2012. I'm using the SQL Server Data Tools that you're supposed to work with now. I had to change the query and remove one of the fields returned by one of
the datasets in the report. I had some problems, but have worked through it.
Now I can run the application, if I specify my .RDL file as the starting item. However, within the SSDT development environment, if I try to preview the report I'll get the following:
"An error occurred during local report processing.
An error occurred during rendering of the report.
An error occurred during rendering of the report.
Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index"
But the Error List shows no problems at all. Everything is fine. Everything works. And yet, there's nothing in the preview except for the error messages I've listed above.
So, how can there be "no errors, warning or messages" and yet there's nothing to be seen in the preview? And why does it work when I run it in SSDT?
RodHi Rod,
It's probably caused by data caching in the designer. When you changed the query and remove one of the fields returned by one of the datasets in the report, the dataset definition has been changed, but the actual cached data stored by Visual Studio (i.e.
the *.rdl.data file) still has data based on the old Dataset definition when reprocessing the report. This is in internal error caused by the mismatch between the data the report is expecting and what has been cached.
In this scenario, we can delete the *.rdl.data files from the drive, hit the "Refresh Fields" under the dataset properties for my dataset, then try previewing again.
If there are any other questions, please feel free to ask.
Thanks,
Katherine Xiong
If you have any feedback on our support, please click
here.
Katherine Xiong
TechNet Community Support -
SENDING TEXT FILE AS AN ATTACHMENT
Hi,
I want to send an email as a TEXT file attachment.
Thanks
Vikranth Khimavathhi,
Use the FM SO_NEW_DOCUMENT_ATT_SEND_API1 to send mail with an attachment. Here is the sample code.
FUNCTION Z_SEND_MAIL.
""Local interface:
*" IMPORTING
*" VALUE(MESSAGE) TYPE STRING OPTIONAL
*" VALUE(RECEIVER_MAIL) TYPE STRING OPTIONAL
*" VALUE(TO) TYPE STRING OPTIONAL
data for send function
DATA doc_data TYPE sodocchgi1.
DATA object_id TYPE soodk.
DATA objcont TYPE TABLE OF soli INITIAL SIZE 10.
DATA wa_objcont LIKE LINE OF objcont.
DATA receiver TYPE TABLE OF somlreci1 INITIAL SIZE 1.
DATA wa_receiver LIKE LINE OF receiver.
move message
TO doc_data-obj_descr .
This is the subject for your mail.
WRITE 'Sub:test Mail' TO doc_data-obj_descr.
This is the body of your mail.
concatenate ' Hi ' to into wa_objcont-line separated by space.
append wa_objcont to objcont.
wa_objcont-line = message.
append wa_objcont to objcont.
Specify receipent id.
MOVE: RECEIVER_MAIL TO wa_receiver-receiver,
'X' TO wa_receiver-express,
'U' TO wa_receiver-rec_type.
APPEND wa_receiver TO receiver.
Finally call the function module.
CALL FUNCTION 'SO_NEW_DOCUMENT_SEND_API1'
EXPORTING
document_data = doc_data
put_in_outbox = 'X' "Save Document in Outbox
COMMIT_WORK = 'X'
IMPORTING
new_object_id = object_id
TABLES
object_content = objcont
receivers = receiver
EXCEPTIONS
too_many_receivers = 1
document_not_sent = 2
document_type_not_exist = 3
operation_no_authorization = 4
parameter_error = 5
x_error = 6
enqueue_error = 7.
SUBMIT rsconn01 USING SELECTION-SET 'SAP&CONNECTINT' AND RETURN.
ENDFUNCTION.
REPORT RSCONN01 MESSAGE-ID XS NO STANDARD PAGE HEADING.
INCLUDE <SYMBOL>. " 11.11.96
TYPE-POOLS: SX.
TYPE-POOLS: KKBLO.
PARAMETERS: MODE(3) TYPE C DEFAULT '*',
OUTPUT TYPE C DEFAULT ' '. "B20K072036 new parameter
selection-screen skip.
parameters maxjobs type sx_maxjobs default 1.
parameters rfcgroup type bdfields-rfcgr.
selection-screen skip.
parameters maxpsize type sx_maxpsize default 1000.
parameters minpsize type sx_minpsize default 20.
parameters maxsel type sx_maxqrows default 20000.
parameters timepo type sx_timepo default 2.
parameters timeout type sx_arfctimeout default 100.
parameters commit type sx_commit default 1.
data address_types type sx_addrtab.
data job_params type sxjobs.
data jobdata type sxjobdata.
--- initialization -
initialization.
get default parameters
call function 'SX_JOBDATA_GET'
changing
jobdata = jobdata.
give defaults to parameters
maxjobs = jobdata-maxjobs.
maxpsize = jobdata-maxpsize.
minpsize = jobdata-minpsize.
maxsel = jobdata-maxsel.
timepo = jobdata-timepo.
timeout = jobdata-arfc_timeout.
commit = jobdata-commit_after.
--- start-of-selection -
start-of-selection.
perform addr_type_to_table using mode
changing address_types.
job_params-maxjobs = maxjobs.
job_params-rfcgroup = rfcgroup.
job_params-maxpsize = maxpsize.
job_params-minpsize = minpsize.
job_params-maxsel = maxsel.
job_params-timepo = timepo.
job_params-arfc_timeout = timeout.
job_params-commit_after = commit.
call function 'SX_OBJECTS_SEND'
exporting
address_types = address_types
output = output
job_params = job_params
exceptions
others = 1.
if sy-subrc <> 0.
message id sy-msgid type sy-msgty number sy-msgno
with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
endif.
exit.
TABLES: SXADDRTYPE.
DATA: selection type SX_ADDRTAB,
NR_SO_OBJECTS TYPE I,
OBJ_CAT TYPE SX_OBJ_CAT OCCURS 20 WITH HEADER LINE.
if sy-batch = 'X'.
message I078 with 'RSCONN01' SY-HOST SY-MANDT.
endif.
*fill selection table
refresh selection.
if mode = '*'.
clear mode.
endif.
IF NOT ( MODE IS INITIAL ).
SELECT SINGLE * FROM SXADDRTYPE WHERE ADDR_TYPE EQ MODE.
IF SY-SUBRC NE 0.
IF OUTPUT EQ 'X'.
WRITE: MODE, TEXT-001, TEXT-002.
ENDIF.
EXIT.
ENDIF.
IF SXADDRTYPE-METHOD NE 'SAPCONNECT'.
IF OUTPUT EQ 'X'.
WRITE: MODE, TEXT-003, TEXT-004, TEXT-005.
ENDIF.
EXIT.
ENDIF.
append sxaddrtype-addr_type to selection.
ELSE.
select * from sxaddrtype
where method = 'SAPCONNECT'
and extern = sx_true.
case sxaddrtype-addr_type.
when 'INT' or 'FAX' or 'PAG' or
'PRT' or 'RML' or 'X40'.
append sxaddrtype-addr_type to selection.
endcase.
endselect.
ENDIF.
CALL FUNCTION 'SX_OBJECTS_SEND'
EXPORTING
ADDRESS_TYPES = SELECTION
IMPORTING
NR_SO_OBJECTS = NR_SO_OBJECTS
TABLES
OBJ_CAT = OBJ_CAT
EXCEPTIONS
INTERNAL_ERROR = 1
OTHERS = 2.
IF SY-SUBRC NE 0.
IF OUTPUT EQ 'X'.
Always write out this error message:
WRITE: TEXT-006, SY-SUBRC.
ENDIF.
EXIT.
ENDIF.
IF NR_SO_OBJECTS = 0.
IF OUTPUT EQ 'X'.
WRITE: TEXT-007.
ENDIF.
EXIT.
ENDIF.
IF OUTPUT EQ 'X'.
PERFORM DISPLAY_OBJECT_CATALOGUE.
ENDIF.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR MODE.
PERFORM F_SHOW_ADDR_TYPES CHANGING MODE.
AT SELECTION-SCREEN ON HELP-REQUEST FOR OUTPUT.
PERFORM F_HELP_OUTPUT.
*& Form addr_type_to_table
text
form addr_type_to_table using address_type type sx_addrtyp
changing address_types type sx_addrtab.
data adrtp_wa type sxaddrtype.
data adrtp type sx_addrtyp.
if address_type <> '*'.
adrtp = address_type.
endif.
if not adrtp is initial.
select single * from sxaddrtype into adrtp_wa
where addr_type = adrtp.
if sy-subrc <> 0.
message i009 with adrtp.
exit.
endif.
if adrtp_wa-method ne 'SAPCONNECT'.
message i027 with adrtp.
exit.
endif.
append adrtp_wa-addr_type to address_types.
else.
select * from sxaddrtype into adrtp_wa
where method = 'SAPCONNECT'
and extern = sx_true.
case adrtp_wa-addr_type.
when 'INT' or 'FAX' or 'PAG' or
'PRT' or 'RML' or 'X40'.
append adrtp_wa-addr_type to address_types.
endcase.
endselect.
endif.
endform. " addr_type_to_table
*& Form DISPLAY_OBJECT_CATALOGUE
Anzeige der Liste der zum Versenden selektierten Objekte
--> p1 text
<-- p2 text
FORM DISPLAY_OBJECT_CATALOGUE.
DATA: FIELD_LST TYPE KKBLO_T_FIELDCAT.
DATA: FIELD_CAT TYPE KKBLO_FIELDCAT.
DATA: IS_LAYOUT TYPE KKBLO_LAYOUT.
IS_LAYOUT-NO_ZEBRA = 'X'.
FIELD_CAT-REF_TABNAME = 'SXOBJCAT'.
FIELD_CAT-NO_SUM = 'X'.
FIELD_CAT-JUST = 'L'.
FIELD_CAT-OUTPUTLEN = 3.
FIELD_CAT-REPTEXT = 'Trc'.
FIELD_CAT-FIELDNAME = 'DISPL_TRC'.
FIELD_CAT-HOTSPOT = 'X'.
FIELD_CAT-SYMBOL = 'X'.
APPEND FIELD_CAT TO FIELD_LST.
FIELD_CAT-SYMBOL = ' '.
FIELD_CAT-OUTPUTLEN = 0.
FIELD_CAT-HOTSPOT = ' '.
FIELD_CAT-REPTEXT = ' '.
CLEAR: FIELD_CAT-NO_ZERO, FIELD_CAT-KEY .
FIELD_CAT-FIELDNAME = 'ID'. APPEND FIELD_CAT TO FIELD_LST.
FIELD_CAT-FIELDNAME = 'TITLE'. APPEND FIELD_CAT TO FIELD_LST.
FIELD_CAT-FIELDNAME = 'TYPE'. APPEND FIELD_CAT TO FIELD_LST.
FIELD_CAT-FIELDNAME = 'NR_RECIP'. APPEND FIELD_CAT TO FIELD_LST.
LOOP AT FIELD_LST INTO FIELD_CAT.
FIELD_CAT-COL_POS = SY-TABIX.
MODIFY FIELD_LST FROM FIELD_CAT.
ENDLOOP.
LOOP AT OBJ_CAT.
OBJ_CAT-DISPL_TRC = SYM_PENCIL.
MODIFY OBJ_CAT.
ENDLOOP.
CALL FUNCTION 'K_KKB_LIST_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = 'RSCONN01'
I_CALLBACK_USER_COMMAND = 'CB_OL_UCOMM'
I_CALLBACK_TOP_OF_PAGE = 'CB_OL_TOP'
I_CALLBACK_PF_STATUS_SET = 'CB_OL_PFSTATUS'
I_TABNAME = 'OBJ_CAT'
IS_LAYOUT = IS_LAYOUT
IT_FIELDCAT = FIELD_LST
TABLES
T_OUTTAB = OBJ_CAT
EXCEPTIONS
OTHERS = 1.
ENDFORM. " DISPLAY_OBJECT_CATALOGUE
*& Form CB_OL_PFSTATUS
Callback Funktion (wird aus Listtool heraus gerufen) *
--> p1 text
<-- p2 text
FORM CB_OL_PFSTATUS
USING EXTAB TYPE KKBLO_T_EXTAB.
SET PF-STATUS 'CATALOG' EXCLUDING EXTAB.
SET TITLEBAR 'CAT'.
ENDFORM. " CB_OL_PFSTATUS
*& Form CB_OL_TOP
Callback Funktion (wird aus Listtool heraus gerufen) *
--> p1 text
<-- p2 text
FORM CB_OL_TOP.
ENDFORM. " CB_OL_TOP
*& Form CB_OL_UCOMM
text *
--> p1 text
<-- p2 text
FORM CB_OL_UCOMM
USING UCOMM LIKE SY-UCOMM
SELFIELD TYPE KKBLO_SELFIELD.
DATA: NUMC5(5) TYPE N.
NUMC5 = SELFIELD-TABINDEX.
CASE UCOMM.
WHEN 'PIC1'.
CASE SELFIELD-SEL_TAB_FIELD.
WHEN 'OBJ_CAT-DISPL_TRC' OR 'OBJ_CAT-TITLE' OR 'OBJ_CAT-ID'.
READ TABLE OBJ_CAT INDEX SELFIELD-TABINDEX.
IF SY-SUBRC NE 0.
MESSAGE E042.
ENDIF.
SUBMIT RSWTTR01
WITH P_TYPE = 'D'
WITH P_UNAME = SPACE
WITH P_OBJ = OBJ_CAT-ID AND RETURN.
WHEN OTHERS.
MESSAGE I041 WITH NUMC5 SELFIELD-SEL_TAB_FIELD UCOMM.
ENDCASE.
WHEN OTHERS.
MESSAGE I041 WITH NUMC5 SELFIELD-SEL_TAB_FIELD UCOMM.
ENDCASE.
ENDFORM. " CB_OL_UCOMM
*& Form F_SHOW_ADDR_TYPES
text
<--P_MODE text *
FORM F_SHOW_ADDR_TYPES CHANGING A_TYPE.
DATA: HELP_INFO LIKE HELP_INFO
, sel_value like help_info-fldvalue
, CUCOL LIKE SY-CUCOL
, CUROW LIKE SY-CUROW
, value like help_info-fldvalue value 'SE38'
, IND LIKE SY-INDEX
, C_SY_SUBRC(3) TYPE C
DATA: BEGIN OF FIELDS OCCURS 5.
INCLUDE STRUCTURE HELP_VALUE.
DATA: END OF FIELDS.
DATA: BEGIN OF LIST_OF_FIELDS OCCURS 5,
NAME(21) TYPE C.
DATA: END OF LIST_OF_FIELDS.
DATA: BEGIN OF FULL_LIST OCCURS 5,
ADDRESS_TYPE LIKE SXADDRTYPE-ADDR_TYPE,
END OF FULL_LIST.
REFRESH FIELDS.
REFRESH LIST_OF_FIELDS.
REFRESH FULL_LIST.
HELP_INFO-TABNAME = 'SXADDRTYPE'.
HELP_INFO-FIELDNAME = 'ADDR_TYPE'.
SELECT * FROM SXADDRTYPE.
IF SXADDRTYPE-METHOD NE 'SAPCONNECT'
OR SXADDRTYPE-EXTERN NE SX_TRUE.
CONTINUE.
ENDIF.
MOVE SXADDRTYPE-ADDR_TYPE TO FULL_LIST-ADDRESS_TYPE.
APPEND FULL_LIST.
ENDSELECT.
MOVE '*' TO FULL_LIST-ADDRESS_TYPE.
APPEND FULL_LIST.
LIST_OF_FIELDS-NAME = 'SXADDRTYPE-ADDR_TYPE'.
APPEND LIST_OF_FIELDS.
CALL FUNCTION 'TRANSFER_NAMES_TO_FIELDS'
EXPORTING
SELECTFIELD = HELP_INFO-FIELDNAME
TABLES
FIELDS = FIELDS
NAMELIST = LIST_OF_FIELDS
EXCEPTIONS
WRONG_FORMAT_GIVEN = 1
OTHERS = 2.
CALL FUNCTION 'HELP_VALUES_GET_WITH_VALUE'
EXPORTING
DISPLAY = ' '
FIELDNAME = HELP_INFO-FIELDNAME
TABNAME = HELP_INFO-TABNAME
GIVEN_VALUE = HELP_INFO-FLDVALUE
TITEL = TEXT-002
IMPORTING
SELECT_VALUE = HELP_INFO-FLDVALUE
SELECT_INDEX = IND
TABLES
FIELDS = FIELDS
VALUETAB = FULL_LIST
EXCEPTIONS
FIELD_NOT_IN_DDIC = 1
MORE_THEN_ONE_SELECTFIELD = 2
NO_SELECTFIELD = 3
OTHERS = 4.
C_SY_SUBRC = SY-SUBRC.
CASE SY-SUBRC.
WHEN '0'.
READ TABLE FULL_LIST INTO A_TYPE INDEX IND.
WHEN OTHERS.
MESSAGE E022 WITH C_SY_SUBRC.
ENDCASE.
ENDFORM. " F_SHOW_ADDR_TYPES
*& Form F_HELP_OUTPUT
text
--> p1 text
<-- p2 text
FORM F_HELP_OUTPUT.
DATA: CANCELLED TYPE C,
C_SY_SUBRC(8) TYPE C.
CALL FUNCTION 'POPUP_DISPLAY_TEXT'
EXPORTING
LANGUAGE = SY-LANGU
POPUP_TITLE = 'SAPconnect'
TEXT_OBJECT = 'RSCONN01_F1_OUTPUT_40B'
IMPORTING
CANCELLED = CANCELLED
EXCEPTIONS
TEXT_NOT_FOUND = 1
OTHERS = 2.
C_SY_SUBRC = SY-SUBRC.
IF SY-SUBRC NE 0.
MESSAGE E035 WITH C_SY_SUBRC. leads to dump !
ENDIF.
ENDFORM. " F_HELP_OUTPUT
Regards,
Richa -
Dear All,
Our client is using SAP B1 8.8 PL11. Their requirement needs updation of a field in marketing documents based on the Shipping Type of the Marketing docs. For this, I created a UDF in marketing docs and wrote a FMS that refreshes on the "Shipping Type" field. The query is working fine. However, we observed that "Shipping Type" is not available as a refreshing field in many of the docs. While we can refresh the data based on a shipping type in Sales Quotation, Sales Order and Sales Invoice, the option is not there in Delivery and Returns. Similarly,coming to the Purchase side, the option is not available in Purchase Order and Returns but available in GRPO and A/P Invoice.
Is it a bug in the Patch level 11?
Regards,
Bharath SYou are right.. nothing will tell you whether it is successfully sent or not but when you submit the report RSCONN01 - This should tell you if there are any failed records.
-
Pop-up in a report with selection screen
Hi all,
I need to display a pop-up as an input component for a report as it is executed.
The controlling area has to entered inthe pop-up.The pop-up is same as the one in Transaction code CO99.
How do i do this for report? Its not a module pool development.
Pls help with your ideas.
Thanks,
stockUse this code for this purpose.
Write this subroutine where u want the popup.
PERFORM POPUP USING ST CHANGING ST.
Write the following code in the subroutine of pop up.
FORM POPUP USING P_INVST CHANGING P_VALUE.
DATA: FIELDS LIKE SVAL OCCURS 0 WITH HEADER LINE.
DATA : TITLE(40).
REFRESH : FIELDS. CLEAR ANS.
P_VALUE = P_INVST.
FIELDS-TABNAME = 'TKA01'. FIELDS-FIELDNAME = 'KOKRS'.
FIELDS-VALUE = P_VALUE.
APPEND FIELDS.
heading of the title box
TITLE = 'Please give the controlling area'
function to get the pop up
CALL FUNCTION 'POPUP_GET_VALUES'
EXPORTING
POPUP_TITLE = TITLE
IMPORTING
RETURNCODE = ans
TABLES
FIELDS = fields.
if ans = 'A'.
else.
read table fields index 1.
P_VALUE = FIELDS-VALUE.
endif.
ST = P_VALUE.
ENDFORM. " POPUP -
How to create dropdown list for custom remote function module
HI ,
I created a custom remote function module for a ztable.table having four fields.But now the requirement is to maintain the dropdown list for input parameter .
For eg: I maintain Input parameter as action.For that Action we have to maintain a dropdown list(display,insert,update and delete values ) in function module.Is it possible.Hi
Try using POPUP_GET_VALUES function module in the begining of the Function module this gives a POP to provide a value to you
In this you can provide a value
Check the import parameters of this Function module if it has COMBOBOX as parameter ( I dont have SAP access at this point of time) you can pass X to it so you get List box for the following fields
Create a domain to field and assing fixed values to it and use it in any table(As this works with only existing tables)
refresh fields.
DATA: fields LIKE SVAL OCCURS 0.
fields-tabname = 'MAKT'.
FILEDS-FIELDNAME = 'MAKTX'.
APPEND FIELDS.
CALL FUNCTION 'POPUP_GET_VALUES' " Try copying this in a Test program and execute
EXPORTING
POPUP_TITLE = 'Enter Mail Id here'
START_COLUMN = '5'
START_ROW = '5'
IMPORTING
RETURNCODE = SRETURN
TABLES
FIELDS = FIELDS.
Cheerz
Ramchander Rao.K
Edited by: Rob Burbank on Nov 23, 2011 9:50 AM
Maybe you are looking for
-
I'm trying to create an animated gif. I made a BG image that I want the video to go on top of. The video is 136 frames (layers). I duplicated the BG image 136 times and pasted the videos 136 layers on top of the BG image.. Here is my problem.. I need
-
How can I change the UI language?
At my new job I just got a fresh copy of Photoshop and it's in German. I want my Photoshop in English but I can't switch languages under Options. There are no other language packs available in this installation. Where can I download a lanuage pack? A
-
How can I remove myself from a groupchat on iMessage?
I have a group of people that create chatgroups on iMessage and continuosly spam me and others. Where is that ef'ing button to delete myself from the group chat or delete the chat completelly? Where can I block those people from sending me chat messa
-
Universe creation against SAP Cubes/Queries with same connection
Hello, I am creating universe against the connection for SAP BW system, once I have created a connection and selected a cube or query and built a universe on top of it....If I go back and create a new universe and this time change the connection to p
-
Is there a way to add a Thunderbolt port to a early 2010 iMac?
I don't care about the display but I'd like to get one of the new Thunderbolt disk arrays. TIA