Text
Quick display Output in Report
cl_demo_output=>display( data = lt_table name = lv_display_name ).
0 notes
Text
Unit Tests References
1. Friend classes: https://gist.github.com/js1972/03c33774e5fb535f4ad7
0 notes
Text
Friend Classes
There is a ditinction between external (PUBLIC) and internal (PROTECTED and PRIVATE) classes. A consumer can access the public but not the private components of a class. This enables the internal implementation of a class to be changed without invalidating its consumers.
However, sometimes, classes have to work closely together and they need to access to the other's private components. Friendship makes it possible to not make these components available to all consumers at the same time.
Friends
A class can grant friendship to other classes and interfaces (and thus to all classes that implement this interface).
Addition: FRIENDS Statement CLASS ... DEFINITION Specify: all classes and interfaces to which friendship is to be granted. Permissions: private compoenents, READ-ONLY components and can always create instances of this class regardless of the addition CREATE of the statement CLASS.
Note
Be careful when granting a global interface friendship. Each class that implements the interface becomes a friend of the class granting the friendship. If a global interface is used, the extent of this friendship should be limited using the package concept.
Friendship is unilateral
If A grants friendship to B. And B grants friendship to C. C does not automatically gain friendhip of A. A must grant explicit friendship to C for this.
Inheritance, Interfaces, and Friendship
If A grants friendship to B and B has subclasses, then these subclasses gain friendhip of A. This means privacy is lost for A when B has a lot of inheritance levels below it and is not recommended.
However, it is safer to grant friendship to FINAL classes.
In contrast, the subclasses of A do not become friends of B. That is, friendship cannot be inherited.
The FRIENDS Additions
1. .. FRIENDS cif1 ... cifn - any local class of a program - all classes or interfaces of the same program - classes and interfaces in the class library - local classes of a class pool can grant friendship to the global class of that class pool
2. ... GLOBAL FRIENDS cif1 ... cifn - used with global classes and is generated by Class Builder when created
3. .. LOCAL FRIENDS cif1 ... cifn - not specified when the class is declared, - but defines its own statement. - the global class can use this statement to grant friendship to the local classes and interfaces of its own class pool CLASS ... DEFINITION LOCAL FRIENDS cif1 ... cifn. is entered directly in the include program for defining local classes and interfaces.
Source:
1. https://help.sap.com/doc/abapdocu_752_index_htm/7.52/en-us/abenfriends.htm
0 notes
Text
Unit Tests
Source: https://help.sap.com/doc/saphelp_nw75/7.5.5/en-US/4e/c4d16b6e391014adc9fffe4e204223/content.htm?no_cache=true
0 notes
Text
Unable to publish OData V4 from Eclipse
1. Run transaction /n/iwfnd/v4_admin
2.
3.
4. Select the required service.
5.
0 notes
Text
ABAP 7.5
1. Move-corresponding for tables
https://saplearners.com/move-corresponding-internal-tables-abap-7-4/
0 notes
Text
ABAP to JSON Serializer and Deserializer
Link:
https://wiki.scn.sap.com/wiki/display/Snippets/One+more+ABAP+to+JSON+Serializer+and+Deserializer
0 notes
Text
Pushing code to bit bucket from web ide
Only three technical actions
fetch
rebase
rebase
pull = f + r
Three types of code
1- remote
2-local staged
3- local unstaged
create a new local repo
create a new remote repo
stage all changes - git pane
commit all changes - git pane
push changes to newly created repo
never push changes to master
0 notes
Text
Building Apps with the ABAP RESTful Application Programming Model Week #4 - Unit 1
Adapter for existing application
0 notes
Text
ALPHA conversion of values.
Values can be converted to internal format from external format and vice versa using the below sytax.
Reference: https://blogs.sap.com/2015/10/25/abap-740-quick-reference/
III. Width/Alignment/Padding
WRITE / |{ ‘Left’ WIDTH = 20 ALIGN = LEFT PAD = ‘0’ }|. WRITE / |{ ‘Centre’ WIDTH = 20 ALIGN = CENTER PAD = ‘0’ }|. WRITE / |{ ‘Right’ WIDTH = 20 ALIGN = RIGHT PAD = ‘0’ }|.
IV. Case
WRITE / |{ ‘Text’ CASE = (cl_abap_format=>c_raw) }|. WRITE / |{ ‘Text’ CASE = (cl_abap_format=>c_upper) }|. WRITE / |{ ‘Text’ CASE = (cl_abap_format=>c_lower) }|.
V. ALPHA conversion
DATA(lv_vbeln) = ‘0000012345’. WRITE / |{ lv_vbeln ALPHA = OUT }|. “or use ALPHA = IN to go in other direction
VI. Date conversion
WRITE / |{ pa_date DATE = ISO }|. “Date Format YYYY-MM-DD WRITE / |{ pa_date DATE = User }|. “As per user settings WRITE / |{ pa_date DATE = Environment }|. “Formatting setting of language environment
0 notes
Text
READ-ONLY public attributes of a class
This means that all classes can read the value stored in the variable but can make no changes to it.
0 notes
Text
bpmworkflowruntime_mail
Resource:
When encountering following error on workflow instance:
"The login credentials given in destination 'bpmworkflowruntime_mail' are missing or incomplete. Maintain user and password in the properties 'mail.user' and 'mail.password'."
Go to the SAP BTP Cockpit -> Connectivity -> Deatinations -> bpmworkflowruntime_mail
Additional properties need to be configured.
Another point to note
Secure communication with STARTTLS is disabled or optional in destination 'bpmworkflowruntime_mail'. Enable and require STARTTLS to send mail through encrypted channels by setting properties 'mail.smtp.starttls.enable' and 'mail.smtp.starttls.required' to 'true'.
Next error message
No host is given in destination 'bpmworkflowruntime_mail'. Provide the host name of the mail server in property 'mail.smtp.host'.
Error message:
No port is given in destination 'bpmworkflowruntime_mail'. Maintain an SMTP port in property 'mail.smtp.port' as defined in the documentation.
0 notes