cancel
Showing results for 
Search instead for 
Did you mean: 

Output Requirement not Fulfilled (But output generated anyway?)

Former Member
0 Kudos

Hello Gurus,

I am facing a very strange situation.

I have added a custom field to the field catalog for output determination.

The setup looks all good, the communication structure is populating the field just fine and the output gets triggered as expected.

However, when I go to the determination analysis (VF02 > Header > Output > Goto > Det. Analysis), it shows the infamous message: Output ignored (requirement 901 not fulfilled). I know you will all say that the requirements in 901 are custom and I should check with my developer, but let's skip that part:

From VOFM, my requirement 901 is a 'copy' of 062 and is as simple as below. In debug I could confirm that all checks pass.

FORM KOBED_901.

   SY-SUBRC = 4.

                                     1

   check SY-TCODE = 'VF01'.

   CHECK : KOMKBV3-UVALL CA ' C'.

   CHECK : KOMKBV3-UVPRS CA ' C'.

   CHECK : KOMKBV3-UVALS CA ' C'.

   CHECK : KOMKBV3-RELIK EQ SPACE.

   CHECK : KOMKBV3-RFBSK EQ 'C'.

   SY-SUBRC = 0.

ENDFORM.

FORM KOBEV_901.

   SY-SUBRC = 4.

                                 1

   check SY-TCODE = 'VF01'.

   CHECK : KOMKBV3-UVALL CA ' C'.

   CHECK : KOMKBV3-UVPRS CA ' C'.

   CHECK : KOMKBV3-UVALS CA ' C'.

   CHECK : KOMKBV3-RELIK EQ SPACE.

   CHECK : KOMKBV3-RFBSK EQ 'C'.

   SY-SUBRC = 0.

ENDFORM.



So the issue is more around: Why is the determination analysis showing me that the output was ignored due to requirement not fulfilled if the actual output was successfully determined and processed in the document?


Accepted Solutions (1)

Accepted Solutions (1)

Jelena
Active Contributor
0 Kudos

The output was created when the document was created (VF01). When you open the document in VF02, it shows that requirement not fulfilled because SY-TCODE <> VF01. Output is already created before that. Csaba's post above was correct (I got a bit confused by the further updates).

As a side note, it's not advisable to include transaction codes in the requirements. Not sure what exactly the goal is but if, say, you need the output triggered only with the document creation then simply change the output type configuration - there is a field for 'multiple issue' (or something like that).

Former Member
0 Kudos

Jelena,

You and Csaba were spot on.

After a few tests I could prove that the problem was indeed with the VF01 check.

However, I would expect the routine to be called only when determining the output initially.

To be perfectly honest, I would really expect to be able to see the determination analysis via VF03, rather than just via VF02.

I have reverted back to Requirement 062 and now I am happy with the results I am getting.

And the Multiple issuing checkbox also does the trick.

Thanks all for the helpful answers.

Thiago

Answers (4)

Answers (4)

former_member193761
Participant
0 Kudos

Why are you hardcoding it to VF01? Are you trying to limit output only once? please explain

0 Kudos

Well,

one reason could be that the code checks for t-code VF01, and you are running the analysis in VF02... see it from the snippet: check SY-TCODE = 'VF01'

Jelena
Active Contributor
0 Kudos

Have you checked if the output was triggered manually? Requirements are not checked in such case.

Former Member
0 Kudos

Hi Jelena,

Although the analysis is viewed in VF02, the determination happened while in VF01 and the output was determined automatically. * I am configuring and testing the scenario, so no possibility of manual determination.

Please see the attachments.

Jelena
Active Contributor
0 Kudos

The attachment did not show the manual flag field. To my knowledge, manual output creation would be the only case when output had a requirement (confirmed by output determination screen) and would still be created.

To answer your "why" question - the only other thing I can imagine is a bug in the output determination screen or in the output processing program. If it shows 'reqirement not fulfilled' then clearly the requirement was checked and not passed.

Edit: spoke too soon - your statement above "all checks passed" is a bit confusing. In order for the requirement to be applied the checks should technically "fail", i.e. the SY-SUBRC = 0 must not be reached and remain at 4. If it didn't stop and SUBRC was 0 at the end then naturally the requirement was not passed and output would be triggered. What exactly did you see in the debugger?

Message was edited by: Jelena Perfiljeva

Shiva_Ram
Active Contributor
0 Kudos

As Jelena clearly explained, if the output type is manually added in the document, then it will skip the requirements checking. Similar topic is explained in OSS  1458787 - Requirements Attached to Output Types which are Manually Added to Deliveries

Regards,

Former Member
0 Kudos

Hi Jelena,

Thank you for your reply.

Here you can see the details where the manual change flag can be seen (unticked).

Regarding the Requirement checks, when I say all checks passed, I mean that every single value in the code is equal to the value it is checking against, for example:

CHECK : KOMKBV3-UVALL CA ' C'. (value is initial = pass)

   CHECK : KOMKBV3-UVPRS CA ' C'. (value is initial = pass)

   CHECK : KOMKBV3-UVALS CA ' C'. (value is initial = pass)

   CHECK : KOMKBV3-RELIK EQ SPACE. (value is initial = pass)

   CHECK : KOMKBV3-RFBSK EQ 'C'. (value is 'C' = pass)


Therefore, SY-SUBRC = 0 and the output is determined.


The outcome is exactly the expected, the output is determined.


The issue is in the analysis screen that shows the requirement as not fulfilled even though the output was successfully determined and I cannot see the access sequence used to determine the output.

eduardo_hinojosa
Active Contributor
0 Kudos

Hi

Delete the SY-TCODE. Maybe you can trigger it with VF03, or with VF31. Or you can create it with VF04. Check also the status related before SY-SUBRC = 0.

Other chance. Although it's for pricing, I believe it could help you. Please, see SAP Note 156230 - Requirements: What is permitted, what is not?.

I hope this helps you

Regards

Eduardo

Former Member
0 Kudos

Hi Eduardo,

I was debugging while in VF01 and all checks passed, so the transaction didn't really affect.

Before Sy-subrc=0 all fields were still passing the check.

I also checked the note and while it says pricing, it is relevant to output control. However, I wasn't lucky with that as well.