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

Visible fields

Former Member
0 Likes
2,077

Hi,

I'm working on import dynpro of infotype screens

does anyone have any experience with this

the problem I have is how do I check if a certain field is visible or not in pa30.

I can't seem to find a connection with the result of the import dynpro.

thanks

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
1,833

Hi Kevin,

In the internal table of element list <b>F</b> (of structure D021S) there is a field called <b>FMB1</b> (Type X).

If the screen element is INIVISIBLE then FMB1 will be 34

If the screen element is OUTPUT ONLY then FMB1 will be 31

If the screen element is OUTPUT then FMB1 will be 30

If the screen element is visible, ready for input then 00.

hope this helps..

Sri

Message was edited by: Srikanth Pinnamaneni

14 REPLIES 14
Read only

Former Member
0 Likes
1,833

> Hi,

>

> I'm working on import dynpro of infotype screens

> does anyone have any experience with this

>

> the problem I have is how do I check if a certain

> field is visible or not in pa30.

> I can't seem to find a connection with the result of

> the import dynpro.

>

> thanks

Hi Kevin,

You problem is not very well detailed...

Have you think about

LOOP AT SCREEN.

CHECK SCREEN-NAME EQ 'NameofFiled'

  • the field exist here

endloop.

Maybe describe your problem much in details in order to get a better solution

Stephan,

Read only

Former Member
0 Likes
1,834

Hi Kevin,

In the internal table of element list <b>F</b> (of structure D021S) there is a field called <b>FMB1</b> (Type X).

If the screen element is INIVISIBLE then FMB1 will be 34

If the screen element is OUTPUT ONLY then FMB1 will be 31

If the screen element is OUTPUT then FMB1 will be 30

If the screen element is visible, ready for input then 00.

hope this helps..

Sri

Message was edited by: Srikanth Pinnamaneni

Read only

0 Likes
1,833

Hi Srikanth,

Your answer was very helpfull thanks !

I still have one problem though.

I have for infotype 0009 different subtypes. Some fields are hidden depending on the subtype. The screen number is the same for all. So there is no different result for the import dynpro.

Do you have any idea where I can find that information?

Thanks

Kev

Read only

0 Likes
1,833

Does anybody know, what fields of structure D021S are responsible for?

Srikanth Pinnamaneni wrote about FMB1... and what can you say about the other fields of this structure? By the way, great thanks for explaining of FMB1!

Best regards.

Read only

Former Member
0 Likes
1,833

I just thought of something else.

To what mode do these settings apply? So for view mode nothing is editable,but for modify and create there are sometimes differences.

My result now has mode 30 for almost all fields, so output.

eg BEGDA and ENDDA have 30 FMB but they are editable. AEDTM and UNAME also have 30, but they aren't editable.

Sorry for all the questions

Kev

Read only

0 Likes
1,833

Hi Kevin,

I tried to check IMG for hide/display fields based on subtypes and so far could not find any such links.

I think they are done via coding in PBO of the infotype screens..

And about FMB1 for BEGDA and ENDDA and so on..

Make sure you are not looking at Field Labels (As they always have 30).

There will be two entries for each field, one for Field Label and one for I/O Field..

For example I was looking at Program MP000900 (for Info Type 0009) and screen 2000..

BEGDA will have two entries, first entry for field label with FMB1 30 and second entry with 00 (As it is editable in screen 2000).

Also if possible give me the screen number that you are interested in so that I can have a look at it and determine how we can retrieve this information..

Hope this helps..

Sri

Read only

0 Likes
1,833

Ah ok

I just found the problem, I do:

DELETE ADJACENT DUPLICATES FROM imp588m COMPARING fnam .

The field labels are the ones that are retained in the list and the other ones are removed.

I guess I can solve this.

But I still have a problem with the subtypes:

Some fields are not shown in another subtype, but the parameters for the import dynpro are the same, so I don't see how to derive that from the result.

I do an import dynpro with following parameter:

PROG=MP000900

DNUM=2000

VARKY=

In our configuration the field P0009-BETRG and P0009-ANZHL are shown for subtype 2 but not for the others.

Thanks already.

Read only

0 Likes
1,833

Hi Kevin,

I think this customizing is done in T588M table.

In SPRO(IMG), the link is,

Personnel Management->Personnel Administration

->Customizing User Interfaces

->Change Screen modifications.

I think DBILD is the field in T588M which contains

the screen modifications ('-' means hide, '+' means show)

Check customizing here whether there is some thing different just for Subtype 2..

Also, a bit on technical side,

Take a look at subroutine SCREEN_MODIFICATION in include

FP50MF20 to see how the field is determined for output.

VARKEY (if it is not space based on customizing) can be derived by using function module HR_FEATURE_BACKFIELD, feed the feature = 'P0009' and whatever you can in l_pme04 like infty, subty etc..

DATA: l_pme04 LIKE pme04, "Got it from T549D

l_varkey LIKE t588m-varkey.

CALL FUNCTION 'HR_FEATURE_BACKFIELD'

EXPORTING

feature = 'P0009'

struc_content = l_pme04

  • KIND_OF_ERROR =

IMPORTING

BACK = l_varkey

  • CHANGING

  • STATUS =

EXCEPTIONS

DUMMY = 1

ERROR_OPERATION = 2

NO_BACKVALUE = 3

FEATURE_NOT_GENERATED = 4

INVALID_SIGN_IN_FUNID = 5

FIELD_IN_REPORT_TAB_IN_PE03 = 6

OTHERS = 7.

IF sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

Now use this l_varkey while reading T588M with,

REPNA = 'MP000900', DYNNR = '2000' and VARKY = l_varkey

Like,

DATA: s_t588m LIKE t588m.

SELECT * FROM t588m INTO s_t588m

WHERE repna = 'MP000900'

AND dynnr = '2000'

AND varky = l_varkey.

Finally use s_t588m-dbild to determine what is visible/invisible. ('-' invisible, ' ', '+' visible)

This leads me to think that IMPORT DYNPRO is not required..

Hope this helps..

NOTE: ' ' / '-' / '+' etc are based on screen group3,

and screen-group3 for BETRG is 008 so dbild will have '-' at 7th positionsimilarly screen-group3 for ANZHL is 009

so dbild will have '-' at 8th position..

May be you can look at all entries in T588M for MP000900, 2000 and then see which entry has '--' at 7th and 8th positions..

Sri

Message was edited by: Srikanth Pinnamaneni

Read only

Former Member
0 Likes
1,833

Hi

I need to set the value dynamically in the program for 'VARKY'. Could anybody know how to do this.

Anybody please help.

Thanks.

Venu

Read only

0 Likes
1,833

Hi Venugopal,

It is a config entry.. why do you want to change it dynamically? in which Program?

Regards,

Suresh Datti

Read only

Former Member
0 Likes
1,833

I am not sure if I am doing it correctly.

I am writing an interface to update IT2010. In the table T588M the functional people have set two entries for the infotype 2010 screen. One with Variable key = 10 and other with 99.

There is field called external document number on 2010.

If the value for Variable key = 10 (default for all users) the field on the IT2010 is grayed out.

And if the value = 99 then it will take input.

The functional people are asking, if I can dynamically change during the program.

Appreciate your help.

Thanks.

Venu

Read only

0 Likes
1,833

Hi Venugopal,

OK I understood yur issue.. How are you updating the infotype? Are you using any function modules? Did you try using HR_INFOTYPE_OPEARTION to create the new records?

Regards,

Suresh Datti

Read only

Former Member
0 Likes
1,833

Hi Suresh,

I am using 'Call transaction' method for this interface.

Thanks.

venu

Read only

0 Likes
1,833

Hi Venugopal,

You will be better off using the above function module instead of the traditional call transaction method. Use the function module in a loop ,fill the structure p2010 for each pernr and pass it on. You need not woory about the VARKY validation.

Good Luck,

Suresh Datti