Addressing down
Triggered by this forum post Issue of blank lines removal in address in master page in Adobe form, I’ve decided to tackle a topic that has been eating at me for some years.
Why do developers seem so reluctant to use address nodes in forms?
This is not a criticism of Anindita, the author of the post who has inherited a form and understandably wants to minimise the amount of change. It’s more a result of spending years having to convince developers that address nodes and not individual text fields are the best way to deliver this functionality.
“I was only doing what I was taught”
My own theory as to why this is not adopted puts the blame squarely with the SAP training material. We’re all familiar with the flight model that is used in the ABAP training (I found my original ABAP training certificate from 1991 recently, and as I recall that course used the same model). But the problem is that this model pre-dates the introduction of Central Address Management (or Business Address Services as it seems to be called now). So while it’s fine for the programming courses, the form development courses tend not to give CAM or BAS the focus it deserves. While the courses for SAPScript, Smartforms and adobe forms all cover the topic of the address node, none of them include the topic in the exercises.
When I taught the SAPscript and Smartform courses myself I always checked table ADRC in the training system and found some valid address numbers to both demonstrate their use and include the topic in the exercises, but any trainer focusing solely on the material will inevitably skim over this topic.
“I was only doing what I was told”
My other theory is that developers are following Functional Specs too closely. A form FS will often include a mock-up something like this;
Then rather than challenging the specific example or just using an address node because it’s best practice, the developer will slavishly follow what has been specified. And in the relatively clean data of a project test system all will be well, only when the vagaries of production data are introduced do blank lines appear in the address, and by then there’s a reluctance to make fundamental changes to forms.
The advantages to address nodes are many, compression of blank lines, prioritisation of lines when space is limited, international formatting, fewer fields passed from the print program or initialisation. I could cover these in detail, but they’re all covered in the SAP help and there’s not a great deal I could add to that.
Now, like any technique I’m sure there are disadvantages to address nodes and please use the comments section to point out their shortcomings. Otherwise, go out there and champion the often forgotten address node.
And what frustrates me even more is the usage of 'ADDRESS_INTO_PRINTFORM' over Address node in the form object 😐
I think most of the people using it are just not familiar with the address node.
I think they don't know about the whole customizing process and instead of working through the content and get the big picture they are just getting their job done not caring about other people who takes care of their objects in the future 😐
I exactly got one case, which wasn't suitable to the adressnode. It was just about to match name1 and name2 in a very special way. But that is more than just two sentences to tell.
Good job, would be effective if you pass some pictures in to show the best practice.
~Florian
yes, let's all use address nodes, they are great!!!! ? or are they?
But in the context of this thread, my client does not want
'Company' as line 0. They want the address, in a window - headed with 'Customer Address' or 'Vendor Address' etc.
So now I have to drum up another solution, as they say 'very nice output, but could you just remove the word 'Company'...so straight away the address node has become inflexible - no option to turn that on or off either (as far as I can see within the forms itself).
So back to hacking about with 'ADDRESS_INTO_PRINTFORM' functions and user exits...maybe I should just go long hand with the address fields in an ITAB and loop at that...ok i'll hack about with it via an exit just so I can still used the darned 'amazing address node' - but still - little things like this make what would be a fantastic address form printing solution not really that good.