Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Function module not allowed: IDOC_INPUT_DELVRY

Former Member
0 Likes
7,321

Hello,

I changed my inbound parameters via WE20 from ( message type -> process code -> function module)DESADV ->DELS->IDOC_INPUT_DESADV TO DESADV ->DELV-> IDOC_INPUT_DELVRY

When I have inbound deliveries, I get the error 51, Function module not allowed: IDOC_INPUT_DELVRY, with steps on how to correct it...

Function module not allowed: IDOC_INPUT_DELVRY

Message no. B1 252

Diagnosis

The function module IDOC_INPUT_DELVRY and the application object type which were determined are not valid for this IDoc.

Procedure

1. Please check that the process code in the inbound partner profile is correct. WE20

2. If this is the case, you should check the ALE inbound methods ALE inbound methods for the process code and see whether the specified function module and application object type are correct. BD67

3. If this is also the case, then the function module and the application object type are not permitted for the logical message type, message variant, message function and basis type that are contained in the IDoc control record. You should check whether the correct values have been assigned to these fields in the control record. If they do have the correct values, then the assignment to the function module and the application object type needs to be maintained. WE57

I have tried all 3 and everything seems okay... am I missing something else?

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
4,176

Hi,

For inbound process code DELV (FM: IDOC_INPUT_DELVRY), the message type is SHPCON / WHSCON. The message type here cannot be DESADV.

Regards

Vatsala.

10 REPLIES 10
Read only

Former Member
0 Likes
4,176

did you look at the code in the FM?



* check basis idoc type
  READ TABLE IDOC_CONTRL INDEX 1.
  IF IDOC_CONTRL-IDOCTP NP 'DELVRY*'.
    MESSAGE E029(E0) WITH IDOC_CONTRL-IDOCTP TEXT-001
            'IDOC_INPUT_DELVRY' RAISING WRONG_FUNCTION_CALLED.
  ENDIF.


it is expecting a particular IDOC type. it is going to raise the error mesage for all other IDOCs. COme ot think of it, if you are usign DESADV, its IDOC is DESADV01, which is different that DELVRY01 IDOCs. How can you use that function module to parse DESADV01 Segments

Read only

0 Likes
4,176

MxG,

thanks for the reply, but both can use DELVRY* on 4.6C..

Look atFM IDOC_INPUT_DELVRY

FORM delvry_idoc_parse.

DEFINE mv.

if not &1 = space.

&2 = &1.

*>>>> start of insertion_hp_167665 <<<<

else.

clear &2.

*>>>> end of insertion_hp_167665 <<<<<<

endif.

END-OF-DEFINITION.

  • check basis idoc type

READ TABLE idoc_contrl INDEX 1.

IF idoc_contrl-idoctp NP 'DELVRY*'.

MESSAGE e029(e0) WITH idoc_contrl-idoctp text-001

'IDOC_INPUT_DELVRY' RAISING wrong_function_called.

ENDIF.

Look at FM IDOC_INPUT_DESADV1

FORM DESADV_IDOC_PARSE.

DEFINE MV.

IF NOT &1 = SPACE.

&2 = &1.

ELSE.

CLEAR &2.

ENDIF.

END-OF-DEFINITION.

  • check basis idoc type

READ TABLE IDOC_CONTRL INDEX 1.

IF IDOC_CONTRL-IDOCTP NP 'DELVRY*'.

MESSAGE E029(E0) WITH IDOC_CONTRL-IDOCTP TEXT-001

'IDOC_INPUT_DESADV1' RAISING WRONG_FUNCTION_CALLED.

ENDIF.

Read only

Former Member
0 Likes
4,177

Hi,

For inbound process code DELV (FM: IDOC_INPUT_DELVRY), the message type is SHPCON / WHSCON. The message type here cannot be DESADV.

Regards

Vatsala.

Read only

0 Likes
4,176

I changed it, now I get a 56 error: EDI: Partner profile inbound not available. How do I fix this?

Read only

0 Likes
4,176

56 is partner profile missing. Create your partner profile in WE20 for your message type and sender partner

Read only

0 Likes
4,176

Hello,

Message type for outbound is DESADV, with DELV process code. Message type for inbound is SHPCON and the process code DELV. Is this okay.. I get the error for inbound from the external system, I have no problems sending outbounds.

Thank you,

AJ

Read only

0 Likes
4,176

yep, you can check the message type from the IDOC control records

Read only

0 Likes
4,176

I did that but it still shows DESADV even for outbound..here's the setup in partner profile

Outbound

Partner function: LS

Message Type: DESADV

Process Code: DELV

Function module: IDOC_OUTPUT_DELVRY

Inbound

Partner function: LS

Message Type: SHPCON (Delivery (SHPCON + WHSCON with DELVRY01)) Do I need to creat a profile for WHSCON? What does the + WHSCON mean?

Process Code: DELV

Function Module: IDOC_INPUT_DELVRY

When I look at the IDOC control record for the inbound it still has the DESADV. I had it set to this before but changed it to SHPCON....Do I need to do something buffer wise or reset something???

I changed the Outbound from DESADV to SHPORD and get nothing back now...

Partner function: LS

Message Type: SHPORD

Process Code: DELV (Delivery DELVRY01: DESADV/CARNOT/WHSORD/SHPORD)

Function module: IDOC_OUTPUT_DELVRY

Read only

0 Likes
4,176

what is the IDOC type you are getting which you are trying to post? if its DESADV, then changing partner profile is not going to make it DELVRY01

Read only

0 Likes
4,176

IDOC type is DELVRY01 or DELVRY03, the inbound fm IDOC_INPUT_DELVRY parses DELVRY*

It 's weird because I have deleted all entries in the partner profile that use DESADV message type. I am checking the external system now.. but even when I test an IDOC using WE19, it still uses the DESADV message type.