SM58: EDI: Table passed to EDI_SEGMENTS_ADD_BLOCK is empty
Hi All,
In SM58 of PI system, we see the above error. If we open the detailed error message, its actually for a aleaud idoc to be sent to a R/3 system. But we have disabled ALEAUD idocs for that r/3 system.
Any suggestions on how to resolve the issue?
Regards,
Aarthi
Hi Aarthi,
we're currently facing the same issue. Could you please explain shortly, what you have deleted?
I also tried to delete the entries in SM58, because nobody takes care for the ALEAUDs, but every day new entries are showing up.
Kind regards,
Juergen
Similar Messages
-
EDI: Table passed to EDI_SEGMENTS_ADD_BLOCK is empty
We are sending IDOCs from SAP PI to target SAP system. But the IDOCs are not posting and giving the following error below.
EDI: Table passed to EDI_SEGMENTS_ADD_BLOCK is empty
Any suggestions would be of great help.
Regards & Thanks,
Harithrough LSMW we are getting post the only inboud idocs. which LSMW idoc method ur using?
-
Error in SM58 - EDI: Table passed to EDI_SEGMENTS_ADD_BLOCK is emp
Hi experts,
Can u please give your inputs regarding the error i am facing in T-Code SM58 "EDI: Table passed to EDI_SEGMENTS_ADD_BLOCK is emp".
Thanks in Advance,
Sangeetha Sadagopan.Are you using custom function module to fill the IDOC fields?
If yes then try to debug the Custom function module and check that all the data are getting transfered to the IDOC segments or not.
Thanks,
Hetal -
SM58 error: EDI: Table passed to EDI_SEGMENTS_ADD_BLOCK is empty
Hi All,
In SM58, we see the below error. If we open the detailed error message, its acutally for a aleaud idoc to be sent to a R/3 system. But we have disabled ALEAUD idocs for that r/3 system.
Any suggestions on how to resolve the issue?
Regards,
AarthiHi Aarti,
The error only occurs if all segments are deleted in the version
change in the ALE outbound processing. The cause can be an incorrect
filling of the IDocs by customers or an application or an incompatible
entry for the IDoc type in the partner profile.
please do the required correction in IDOC.
Please refer sap note [305375|http://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/oss_notes/sdn_oss_bc_mid/~form/handler%7b5f4150503d3030323030363832353030303030303031393732265f4556454e543d444953504c4159265f4e4e554d3d333035333735%7d]
Regards,
Srinivas -
EDI: Table passed to EDI_SEGMENTS_ADD_BLOCK is emp
Hi gurus,
I have too many entries in SM58 with error message: "EDI: Table passed to EDI_SEGMENTS_ADD_BLOCK is emp"
Scenario is SOAP to IDOC.
I checked in XML messages in the pipeline and in the Responses->IDocOutbound I could see the table structure also.
I suppose the function INBOUND_IDOC_ASYNCHRONOUS is not accepting the outgoing IDOC from PI.
Please through some light on what more can I check.
Re,
VikashCheck this SAP Note: https://service.sap.com/sap/support/notes/305375
Ask the ABAP Team to find out more on the correction mentioned in the above note as it seems to be implemented in the sAP ECC system.
Regards,
Abhishek. -
How to handle the error " Table passed to EDI_STATUS_ADD_BLOCK is empty"
Hi All,
We are generating idoc for any material changes using change pointers. Our requirement is the idoc should not generate for few plants.
I have programed in the exit EXIT_SAPLBD11_001, in sucha a way that i am refreshing the table idoc_data for those few plants.
But while generating idoc, am getting an error saying - * " Table passed to EDI_STATUS_ADD_BLOCK is empty" . *
Filtering at model view will not work( because I have 130 plants to be included and only 20 plants to be excluded ) .
Is there negative filtering that can be done ? or any other way to overcome this error ?
Please give your suggestions.
Thank you,
KusumaHi,
You can achieve this by using the concept called BTE, BTE will help you to filter them. We have used that quiet successfully in my earlier project.
BTE means Business Transaction Event.
Thanks,
Mahesh. -
Plsql - store function - passing a NULL or empty string argument
Please see the question I posed below. Does anyone have experience with passing a NULL or empty string to a store function? THANKS.
Hi All,
I have a function that takes in two string arrays, status_array, and gender_array. You can see the partial code below. Somehow if the value for the string array is null, the code doesn't execute properly. It should return all employees, but instead it returns nothing. Any thoughts? THANKS.
for iii in 1 .. status_array.count loop
v_a_list := v_a_list || '''' || status_array(iii) || ''',';
end loop;
v_a_list := substr(v_a_list, 1, length(trim(v_a_list)) - 1);
for iii in 1 .. gender_array.count loop
v_b_list := v_b_list || '''' || gender_array(iii) || ''',';
end loop;
v_b_list := substr(v_b_list, 1, length(trim(v_b_list)) - 1);
IF v_a_list IS NOT NULL and v_b_list IS NOT NULL THEN
v_sql_stmt := 'select distinct full_name from t_employee where status in (' || v_a_list || ') and gender in (' || v_b_list || ')';
ELSIF v_a_list IS NOT NULL and v_b_list IS NULL THEN
v_sql_stmt := 'select distinct full_name from t_employee where status in (' || v_a_list || ') ';
ELSIF v_a_list IS NULL and v_b_list is not null THEN
v_sql_stmt := 'select distinct full_name from t_employee where gender in (' || v_b_list || ')';
ELSE
v_sql_stmt := 'select distinct full_name from t_employee';
END IF;
OPEN v_fullname_list FOR v_sql_stmt;
RETURN v_fullname_list;Not sure what version of Oracle you are using, so here's an approach that will work with many releases.
Create a custom SQL type, so we can use an array in SQL statements (we'll do that at the end).
create or replace type string_list is table of varchar2(100);
/declare your A and B lists as the type we've just created
v_a_list string_list default string_list();
v_b_list string_list default string_list();populate the nested tables with non-null values
for iii in 1 .. status_array.count
loop
if status_array(iii) is not null
then
v_a_list.extend;
v_a_list(v_a_list.count) := status_array(iii);
end if;
end loop;Here you'd want to do the same for B list.
Then finally, return the result. Using ONE single SQL statement will help a lot if this routine is called frequently, the way you had it before would require excessive parsing, which is quite expensive in an OLTP environment. Not to mention the possibility of SQL injection. Please, please, please do some reading about BIND variables and SQL injection, they are very key concepts to understand and make use of, here's an article on the topic.
[http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:1922946900346978163]
So here we ask for the distinct list of full names where either the status and the gender qualify based on the input data, OR the array passed in had no data to restrict the query on (the array.count = 0 does this).
OPEN v_fullname_list FOR
select
distinct
full_name
from t_employee
where
status in (select /*+ CARDINALITY ( A 5 ) */ column_value from table(v_a_list) A )
or v_a_list.count = 0
and
gender in (select /*+ CARDINALITY ( B 5 ) */ column_value from table(v_b_list) B )
or v_b_list.count = 0
);Hope that helps.
Forgot to mention the CARDINALITY hint i added in. Oracle will have no idea how many rows these arrays (which we will treat as tables) will have, so this hint tells Oracle that you expect X (5 in this case) rows. Adjust it as you need, or remove it. If you are passing in thousands of possible values, where i've assumed you will pass in only a few, you may want to reconsider using the array approach and go for a global temporary table.
Edited by: Tubby on Dec 11, 2009 11:45 AM
Edited by: Tubby on Dec 11, 2009 11:48 AM
Added link about using Bind Variables. -
EDI_SEGMENTS_ADD_BLOCK is empty - LSMW with BAPI
Hi everybody!
I'm trying configure a LSMW with BAPI, but when I try to do the step "Start IDoc Generation" I receive the message "EDI_SEGMENTS_ADD_BLOCK is empty".
I already configured the Ports, Partner Type and Partner Number, but I am still receiving the message.
My Example Scenario is:
- A test LSMW to change flight table using the BAPI "BAPI_FLIGHT_SAVEREPLICA".
- The Port is FILE type and the file is local (PC).
-The Partner Type is LS.
- The Partner Number is using FLIGHT_SAVEREPLICA message type in Inbound parameters.
Anybody knows the possible cause of this?
TksAfter search I tried many things to solve it, in the end I just rebuild the LSMW step by step again and the problem does not appeared again...
-
Vat code change, EDI table T076M
Hello,
we are using EDI and table T076M but we have an issue in cases where between original delivery and return of the same the VAT code / percentage has changed. As T076M is not time dependant like the sales condition tables we need to have user exit or other workarround.
Please, can you share your workarrounds / experiences with me.
Regards
ThomasThe table for tax code is T076M - maintainable using T code OBCD. For EDI file number, execute T Code WE02 - enter IDoc number and execute (F8). In the right window pane, choose select layout -> change layout and pick up the field Interchange file reference. Guess this is what you are looking for.
OR
Go to transaction WE02 or WE05 enter Idoc number and choose execute. When Idoc data is displayed double click on Control Record in left pane. Choose Details tab. Interchangable file under References.
You can also refer the entries in table EDIDC.
Reference to interchange file:
This field contains the reference number of the interchange file in which the EDI message was transmitted. -
Data Services repository tables and views: ALVW_MAPPING is empty
Hello.
I need to read via SQL (from inside a DataServices job) the name of target table used in the dataflow of a job.
My problem is that the metadata repository view ALVW_MAPPING is empty, as the tables underneath AL_COLMAP and AL_COLMAP_TEXT are empty. Some other tables, for instance AL_INDEX and AL_COLUMN, are not empty.
Can anyone help me with a solution or an explanation to this? Thank you in advance.AL_INDEX and AL_COLMAP store metadata of tables that you import in Datastore
AL_COLMAP and AL_COLMAP_TEXT table store column mapping information that use in Dataflow, this data is usually populated when you save Dataflow, check if the "automatically calculate column mapping" option is checked in the Tools-> Options window in Designer
if you are not seeing any data in these 2 tables, then go to Designer, select Datastore tab in object library right in the Datastore workspace select Repository menu option and select Calculate Usage Dependency once that completes do select Calculate Column Mapping from the same menu, once that completes check if you see data in these 2 tables -
How to fire a query for every record in a table, pass values in a loop
Hi,
For each record in a table, I want to loop through each record and then fire a query by passing acct, product and date from this table to the where clause of the query. I would have to create a pl/sql block..The output of the query I want to spool from sql developer.
I need the exact syntax please for doing this.. since i am new to Oracle. Just the template will be enough. I will fill in the query.
Any help is appreciated as always..
Regards,
hena904385 wrote:
Hi,
For each record in a table, I want to loop through each record and then fire a query by passing acct, product and date from this table to the where clause of the query. I would have to create a pl/sql block..The output of the query I want to spool from sql developer.
I need the exact syntax please for doing this.. since i am new to Oracle. Just the template will be enough. I will fill in the query.
Any help is appreciated as always..
Regards,
henaHave you ever considered using a JOIN ? It does the same thing as looping through a table and applying that to the where clause of a select on a query, only much, much, much faster and without the need to write any code. SQL is a declarative language, so you specify what you want and not how to do it. It can be bit of a journey to change your thought process if you come from a procedural or object world, but once you get there it's a beautiful view. -
Missing Data in JCO.Table passed as Function Parameter
I am running a JCO server & in my handleRequest(), I am trying to get the data from the tables paased as function parameters from the SAP system.
Somehow I am not able to see any data in the tables, though the SAP system has put some data in the tables before sending.
The no. of rows in the table is 0 always on the JCO side. I tried to dunp the content of the Function & Table with writeHTML() & it shows no data too.
I am able to pass simple strings & integers, but the tables doesn't work. Can anyone tell me where might be the problem.Can you post the code you have used !
-
Missing Data in Table passed as Function Parameter
I am running a JCO server & in my handleRequest(), I am trying to get the data from the tables paased as function parameters from the SAP system.
Somehow I am not able to see any data in the tables, though the SAP system has put some data in the tables before sending.
The no. of rows in the table is 0 always on the JCO side. I tried to dunp the content of the Function & Table with writeHTML() & it shows no data too.
I am able to pass simple strings & integers, but the tables doesn't work. Can anyone tell me where might be the problem.Hi,
I am bit confused, You are not getting the data in the Function module when you make a call from Java or the data returned by the function module is not reaching the Java side. If you are not getting the data which you pass from java in the function module then I have faced this problem before.
In that case the problem was when you pass data as table parameters to the function module you have to check the size of table parameter I was using INITIAL to check if there is any data in the table parameter. If this is the same problem may be by checking the size of the table will solve your problem.
Regards,
Sesh -
All CX* Tables in Local Database are empty
Hello!
We have a one mobile client and at this time i see a problem that all custom tables in local database empty
In client folder outbox only one file "Marker". All server component work fine. SRF one for server and client.
I don't know for what reason it happened. Need help.
Thank you.Hi,
you need configure the custom tables in dock object or you need include the base table in base table property in table object.
If your custom table related a base table, for example, a 1:M table, where a S_ table is a parent table and CX_ is a child table, and base table property in table object (tools) populated with S_ table, in this process, you don't need config the dock object.
After this steps, you need config Siebel anywhere to synchronize local database with new change (CX_ table is updated / created in local database).
If you don't want this method, you can generate and extract a new database. The CX_ tables are generated in local database, but when apply a new CX_ tables, colunm, or any config in tables, you need generate and extract a new local database again.
Regards. -
Oracle type table passing in a procedure - Syntax issue
Hello,
I am trying to call the PROCEDURE INSERT_CCR_HISTORY from the PROCEDURE InsertCcr_Staging_DEBBIE.
I wnat to pass the table to the INSERT_CCR_HISTORY procedure to insert into the table. I don't have the correct syntax.
Can any one help with the syntax.
Thanks.
Jaffee
PROCEDURE INSERT_CCR_HISTORY (vTable vName) IS
BEGIN
declare
i number := 0;
begin
FORALL i IN 1..vTable.COUNT
insert into ccr_staging_history
ccr_staging_history_deb.CCR_ID,
ccr_staging_history_deb.BATCH_ID,
ccr_staging_history_deb.MODIFIED_BY,
ccr_staging_history_deb.MODIFIED_DATE,
ccr_staging_history_deb.ENTERED_BY,
ccr_staging_history_deb.ENTERED_DATE,
ccr_staging_history_deb.DUNS,
ccr_staging_history_deb.DUNS_PLUS4,
ccr_staging_history_deb.CAGE_CODE,
) -- end of values for insert
values
v_next_seq.NEXTVAL , -- v_n(i).CCR_ID,
1, --batch_id null,
NULL, -- modified_by
NULL, -- modified_date
v_user, -- entered_by
sysdate, -- entered_date
vTable(i).DUNS,
vTable(i).DUNS_PLUS4,
vTable(i).CAGE_CODE,
); -- end of value session
COMMIT;
end;
END INSERT_CCR_HISTORY;
PROCEDURE InsertCcr_Staging
IS
BEGIN
declare
TYPE vName IS TABLE oF got_r_num%ROWTYPE;
v_n vName;
cursor outer_lp IS
select distinct(error_vid) error_vid from got_r_num
order by 1;
CURSOR check_duns_etall(p_vid IN VARCHAR2, p_dunsall IN VARCHAR2) IS
Select count(*)
FROM got_r_num
where error_vid = (p_vid)
AND lower(duns||duns_plus4||cage_code||tax_payer_id) = lower(p_dunsall);
v varchar2(100) := NULL;
xt NUMBER := 0;
v_dunsetall varchar2(1000) := NULL;
v_val NUMBER := 0;
v_val_duns NUMBER := 0;
v_user varchar2(30) := SYS_CONTEXT('USERENV','SESSION_USER');
bEGIN
for i in outer_lp LOOP
v := i.error_vid;
SELECT * BULK COLLECT INTO v_n FROM
got_r_num where error_vid = v;
FOR i in 1..v_n.LAST LOOP
IF v_n.count > 1 and v_n(i).SITE_TYPE = 'PURCH' THEN
v_dunsetall := v_n(i).DUNS||v_n(i).DUNS_PLUS4||v_n(i).CAGE_CODE||v_n(i).TAX_PAYER_ID;
OPEN check_duns_etall(v,v_dunsetall);
FETCH check_duns_etall INTO v_val;
CLOSE check_duns_etall;
v_num := i;
IF v_val = 1 THEN
-- insert
-- Populate ccr_staging_history
CCR_MIGRATION.INSERT_CCR_HISTORY ( v_n ); -- calling procedure to Insert. SYNTAX problem ???
END IF;
end if;
END LOOP;
END LOOP;
end;
END; -- end of procedure InsertCcr_StagingGreetings,
I am receiving the following error message.
'17:38:39 Error: PACKAGE BODY DCAMERON.CCR_MIGRATION_DEBBIE
PLS-00436: implementation restriction: cannot reference fields of BULK In-BIND table of records"
Do I have the correct syntax for calling the procedure? Inside the procedure for inserting is this the correct syntax?
CCR_MIGRATION.INSERT_CCR_HISTORY ( v_n );
Thanks.
Jaffee
{code}
CREATE OR REPLACE PACKAGE BODY DCAMERON.CCR_MIGRATION_DEBBIE AS
PROCEDURE MAIN_debbie IS
BEGIN
CreateTempTableNew_debbie;
InsertCcr_Staging_DEBBIE;
END;
PROCEDURE CreateTempTableNew_DEBBIE IS
BEGIN
declare
cnt number := 0;
BEGIN
EXECUTE IMMEDIATE q'[CREATE TABLE dcameron.TEMP_got_r_num
AS
WITH got_cnt AS
SELECT po_ccr_staging.ccr_id,po_ccr_staging.duns,po_ccr_staging.duns_plus4,po_ccr_staging.cage_code,
COUNT (1) OVER ( PARTITION BY po_ccr_staging.error_vid,
po_ccr_staging.error_vsid
) AS cnt -- End of COUNT analytic clause
FROM dcameron.po_ccr_staging,
dcameron.vms_cfs_association vass,
dcameron.vendor_detail ven
WHERE ven.vendor_id = vass.cfs_vendor_id
AND ven.vendor_no = vass.cfs_vendor_no
AND vass.vendor_id = TO_NUMBER (po_ccr_staging.error_vid, '999999999')
AND vass.vendor_site_id = TO_NUMBER (po_ccr_staging.error_vsid, '999999999')
AND ven.address_type IN ( 'CCRDSB', 'CCRPUR')
), -- end got_cnt
temp_got_r_num AS
SELECT got_cnt.ccr_id,got_cnt.duns,got_cnt.duns_plus4,got_cnt.cage_code,
ROW_NUMBER () OVER ( PARTITION BY vendor_id,
vendor_site_id
ORDER BY got_cnt.ccr_id DESC,
cnt DESC
) -- End of ROW_NUMBER analytic clause
AS r_num
FROM got_cnt
) -- end got_r_num
SELECT n.ccr_id,n.duns,n.duns_plus4,n.cage_code
FROM TEMP_got_r_num n
WHERE r_num = 1
ORDER BY vendor_id,
vendor_site_id,
n.ccr_id,
n.duns,
n.duns_plus4,
n.cage_code,
n.tax_payer_id ]';
BEGIN
EXECUTE IMMEDIATE 'DROP TABLE got_r_num';
EXECUTE IMMEDIATE 'ALTER TABLE TEMP_GOT_R_NUM RENAME to got_r_num';
EXCEPTION WHEN OTHERS THEN NULL;
END;
end;
end; -- END OF PROCEDURE -- CreateTempTableNewD_DEBBIE
PROCEDURE InsertCcr_Staging_DEBBIE
IS
BEGIN
declare
TYPE vName IS TABLE oF got_r_num%ROWTYPE;
v_n vName;
cursor outer_lp IS
select distinct(error_vid) error_vid from got_r_num
order by 1;
CURSOR check_duns_etall(p_vid IN VARCHAR2, p_dunsall IN VARCHAR2) IS
Select count(*)
FROM got_r_num
where error_vid = (p_vid)
AND lower(duns||duns_plus4||cage_code||tax_payer_id) = lower(p_dunsall);
v varchar2(100) := NULL;
xt NUMBER := 0;
v_dunsetall varchar2(1000) := NULL;
v_val NUMBER := 0;
v_val_duns NUMBER := 0;
v_user varchar2(30) := SYS_CONTEXT('USERENV','SESSION_USER');
PROCEDURE INSERT_CCR_HISTORY (vTable vName) IS
BEGIN
declare
i number := 0;
begin
FORALL i IN 1..vTable.COUNT
insert into ccr_staging_history_deb
ccr_staging_history_deb.CCR_ID,
ccr_staging_history_deb.BATCH_ID,
ccr_staging_history_deb.MODIFIED_BY,
ccr_staging_history_deb.MODIFIED_DATE,
ccr_staging_history_deb.ENTERED_BY,
ccr_staging_history_deb.ENTERED_DATE,
ccr_staging_history_deb.DUNS,
ccr_staging_history_deb.DUNS_PLUS4,
ccr_staging_history_deb.CAGE_CODE
) -- end of values for insert
values
v_next_seq.NEXTVAL , -- v_n(i).CCR_ID,
1, --batch_id null,
NULL, -- modified_by
NULL, -- modified_date
v_user, -- entered_by
sysdate, -- entered_date
vTable(i).DUNS,
vTable(i).DUNS_PLUS4,
vTable(i).CAGE_CODE
); -- end of value session
COMMIT;
end;
END INSERT_CCR_HISTORY;
BEGIN
for i in outer_lp LOOP
v := i.error_vid;
SELECT * BULK COLLECT INTO v_n FROM
got_r_num where error_vid = v;
FOR i in 1..v_n.LAST LOOP
IF v_n.count > 1 and v_n(i).SITE_TYPE = 'PURCH' THEN
v_dunsetall := v_n(i).DUNS||v_n(i).DUNS_PLUS4||v_n(i).CAGE_CODE||v_n(i).TAX_PAYER_ID;
OPEN check_duns_etall(v,v_dunsetall);
FETCH check_duns_etall INTO v_val;
CLOSE check_duns_etall;
v_num := i;
IF v_val = 1 THEN
-- insert
-- Populate ccr_staging_history
CCR_MIGRATION.INSERT_CCR_HISTORY ( v_n );
END IF;
-- -- insert
-- -- Populate ccr_staging_history
CCR_MIGRATION.INSERT_CCR_HISTORY ( v_N );
else
IF v_n.count > 1 and v_n(i).SITE_TYPE = 'PAYMNT' THEN -- Do this check only for PAYMNT type
v_dunsetall := v_n(i).DUNS||v_n(i).DUNS_PLUS4||v_n(i).CAGE_CODE||v_n(i).TAX_PAYER_ID;
OPEN check_duns_etall(v,v_dunsetall);
FETCH check_duns_etall INTO v_val;
CLOSE check_duns_etall;
IF v_val = 1 THEN
-- insert
-- Populate ccr_staging_history
CCR_MIGRATION.INSERT_CCR_HISTORY ( v_N );
END IF;
ELSE
if v_n.count = 1 then
-- insert
-- Populate ccr_staging_history
CCR_MIGRATION.INSERT_CCR_HISTORY ( v_N );
end if;
END IF;
END IF;
END LOOP;
END LOOP;
end;
END; -- end of procedure InsertCcr_Staging_DEBBIE
END; -- END OF PACKAGE
{code}
Maybe you are looking for
-
Hello, We need to close all of our existing open orders (about 1000 sales orders). Can it be done using DTW? Thanks Revital
-
Is there any way to retrieve photos from a dead iphone 4?
The mainboard on my wife's iPhone 4 has died maybe due to water. It's dead and I've had it confirmed by apple. Photostream was not on and it wasn't backed up in a long time.
-
Synchronizing 2 or more QT video streams to 2 or more video outputs?
My students need to play two or more QT video files in sync (ideally contained in the same file) to two or more video outputs. We have an app. called Modul8 which can do this but it's way to complex for operation in an art gallery installation. Does
-
Dacf; gridcontrol cell; put edits
To put all those discussion into a practical example and question... I have a dacf grid control. The user can edit a part number ( 1 of 350,000 possible.. no list boxes ) that is one of the columns. I want to make sure that part number is valid via a
-
Substitution in CO with integration to PS
Hello folks We have defaulted a GL account(18XXXX) to a default profit center through transaction code 3keh. There is a WBS element whose costs gets settled to this GL Account. This GL Account is a balance sheet account. On settlement of this WBS, th