Abap Api Translation
Abap Api Translation
Abap Api Translation
RKCTRTX1
________________________________
Just a quick call for Guest Contributors to post SAP or ERP related articles to
ERPWorkbench.com. Not only will you be able to use this as a way to share
your knowledge and advertise your skills but you will also receive a free
online Video training course of your choice for every 6 articles you get
published.
So what are you waiting for?? Start getting rewarded now and share your
knowledge, tips and tricks with the SAP community.
H
суббота, 27 марта 2010 г.
P
*&---------------------------------------------------------------------*
*& Report ZSIT_GOOGLE_TRANSLATE
*&
E
*&---------------------------------------------------------------------*
R
L
*&
*&
*&---------------------------------------------------------------------*
REPORT zsit_google_translate.
*&---------------------------------------------------------------------*
*& Selection Screen
*&---------------------------------------------------------------------*
PARAMETERS p_text TYPE text100 DEFAULT 'Hello World! Using Webservice in SAP AB
AP!'.
PARAMETERS p_src TYPE zesit_net310_google_lang AS LISTBOX VISIBLE LENGTH 15 DEFAULT
'EN' .
PARAMETERS p_trg TYPE zesit_net310_google_lang AS LISTBOX VISIBLE LENGTH 15 DEFAULT
'RU' .
* I create ED and Domain zesit_net310_google_lang like char2
* with values EN and RU
*&---------------------------------------------------------------------*
*& Types and Data
*&---------------------------------------------------------------------*
DATA: http_client TYPE REF TO if_http_client ,
http_url TYPE string ,
p_content TYPE string ,
p_result TYPE string .
*&---------------------------------------------------------------------*
*& Start of Selection
*&---------------------------------------------------------------------*
START-OF-SELECTION .
CONCATENATE 'http://ajax.googleapis.com/ajax/services/language/translate?v
=1.0&q='
p_text '&'
'langpair=' p_src '|' p_trg
INTO http_url.
p_result = p_content.
* Processing string for result
SHIFT p_content LEFT UP TO '{"translatedText":"'.
SHIFT p_content LEFT BY 19 PLACES.
SPLIT p_content AT '"}' INTO p_result p_content.
This is about a simple ABAP Utility . It will post ABAP object’s documentation to Google, for the
purpose of displaying translated text in your logon language or in English.
You can also use this weblog for extending workbench functionality.
The Problem :
Not sure if you’ve faced this problem but I found that quite a few of the function modules are not
provided with English documentation – however documentation in German does exist for most of
these.
Actually I made the problem afterwards. Frankly speaking, I didn’t write this utility because I wanted
to solve any problem. It was just for the fun !!
[ Now where is the fun part? – keep on reading, it’s in The End 🙂 ]
Benefits :
1.
2.
When no documentation exist at all then you can be sure about that immediately.
Processing :
You can run the report program directly from SE38 as well . But it will be good if you can embed the
functionality in ABAP Workbench itself .
Implementation for BADI WB_PROCESS_FCODE -Method DISPATCH
method IF_EX_WB_PROCESS_FCODE~DISPATCH .
Data : lv_OBJECT type DOKHL-OBJECT.
Data : lv_obj_id type DOKHL-ID.
data : lv_langp type char5.
data : lv_typ type c.
data : lt_dokil type standard table of dokil.
data : wa_dokil type dokil.
*P_OK_CODE
Check P_OK_CODE eq ‘WB_DOCUMENTATION’.
break-point.
IF sy-tcode eq ‘SE37’.
get parameter id ‘LIB’ field lv_OBJECT.
lv_obj_id = ‘FU’.
lv_typ = ‘T’.
ELSE.
ENDIF.
select *
into table lt_dokil
from DOKIL
where ID eq lv_obj_id
and OBJECT eq lv_OBJECT
and TYP eq lv_typ.
check sy-subrc eq 0.
check sy-subrc ne 0.
if sy-subrc eq 0 .
lv_langp = ‘de|en’.
endif.
endmethod.
Program Z_RMTIWARI_ABAP_DOC_TRANSLATOR :
The program accepts inputs for the function module name & the language pair in. It simply gets the
available documentation of the object and then generates the HTML code for Google translation
FORM. The HTML Page gets downloaded to ‘C:\Temp’ folder on your PC and subsequently called by
the program in your default browser.
REPORT Z_RMTIWARI_ABAP_DOC_TRANSLATOR .
—-
—-
—-
This utility will accept ABAP documentation objects and will submit
the text to google in order to translate it from one language to
other.
This utility is useful for translating the function module and other
ABAP Object’s documenations from German to English, in case it is
only available in German.
You can also translate the documentation from english to any other
(available) language,in case, for you, English is as good as German.
*—-
*—-
SELECTION SCREEN
*—-
Data declaration
—-
—-
lt_valuetab-P_LANGP = ‘de|en’.
lt_valuetab-DESC = ‘German to English’.
APPEND lt_valuetab.
lt_valuetab-P_LANGP = ‘de|fr’.
lt_valuetab-DESC = ‘German to French’.
APPEND lt_valuetab.
lt_valuetab-P_LANGP = ‘en|de’.
lt_valuetab-DESC = ‘English to German’.
APPEND lt_valuetab.
lt_valuetab-P_LANGP = ‘en|es’.
lt_valuetab-DESC = ‘English to Spanish’.
APPEND lt_valuetab.
lt_valuetab-P_LANGP = ‘en|fr’.
lt_valuetab-DESC = ‘English to French’.
APPEND lt_valuetab.
lt_valuetab-P_LANGP = ‘en|it’.
lt_valuetab-DESC = ‘English to Italian’.
APPEND lt_valuetab.
lt_valuetab-P_LANGP = ‘en|pt’.
lt_valuetab-DESC = ‘English to Portuguese’.
APPEND lt_valuetab.
lt_valuetab-P_LANGP = ‘en|ja’.
lt_valuetab-DESC = ‘English to Japanese BETA’.
APPEND lt_valuetab.
lt_valuetab-P_LANGP = ‘en|ko’.
lt_valuetab-DESC = ‘English to Korean BETA’.
APPEND lt_valuetab.
lt_valuetab-P_LANGP = ‘en|cn’.
lt_valuetab-DESC = ‘English to Chinese(Simplified) BETA’.
APPEND lt_valuetab.
…
ENDIF.
START-OF-SELECTION.
P_LANGU = P_LANGP(1).
EXTEND_EXCEPT =‘‘
ID = P_ID
LANGU = P_LANGU
OBJECT = P_OBJECT
TYP = ‘E’
VERSION =0
VERSION_ACTIVE_OR_LAST = ‘L’
PRINT_PARAM_GET = ‘X’
IMPORTING
DOKSTATE =
DOKTITLE =
HEAD =
DOKTYP =
TABLES
LINE = lt_doc_text
EXCEPTIONS
NO_DOCU_ON_SCREEN =1
NO_DOCU_SELF_DEF =2
NO_DOCU_TEMP =3
RET_CODE =4
OTHERS =5
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
END-OF-SELECTION.
&—-
—-
–>x_directory text
–>x_program_name text
–>y_file_name text
—-
ENDFORM. ” prepare_file_name
&—-
text
—-
–> p1 text
<– p2 text
—-
FORM download_html_file_on_pc tables yt_download
using x_outfile type string.
IF sy-batch EQ ‘X’.
MESSAGE e001(AQ) WITH
‘This program cannot be executed in background’.
ELSE.
Status of download
CASE sy-subrc.
WHEN 0.
MESSAGE I002(AQ) WITH
‘HTML page downloaded as ‘ x_outfile.
WHEN OTHERS.
ENDFORM. ” download_html_file_on_pc
&—-
text
—-
–>P_GT_REP_TABLE text
–>P_GT_HTML text
—-
DEFINE add_html.
yt_html = &1.
APPEND yt_html.
END-OF-DEFINITION.
add_html ‘‘
into lv_langp_html.
endif.
‘.
add_html ‘‘.
add_html ‘‘.
add_html ‘‘.
add_html ‘
‘.
add_html ‘</BODY>’.
add_html ‘</HTML>’.
ENDFORM. ” convert_code_to_html
&—-
text
—-
–>X_FILE_NAME text
—-
lv_url = x_file_name.
CALL FUNCTION ‘CALL_BROWSER’
EXPORTING
URL = lv_url.
ENDFORM. ” show_html_file
The Result:
For example : You can open a function module say ABAP_DOCU_SHOW using transaction SE37 .
Further click on Menu Function .
Since the BADI is implemented for function code ‘documentation’, the utility will be called and
Google translated text from German to English will be shown in your default browser.
Also there seems to be some problem with the google translation and it does not respect end-of-
sentence or line-breaks http://www.worldlingo.com/ could have done better . That makes the
translated text look like some kind of garbage. Also, there seems to be some encoding related issue.
But that should not be very difficult to resolve.
</P>
Alert Moderator
Assigned tags
Retagging required
rammanohar tiwari
Related Questions
We are sorry but we are currently unable to retrieve related content.
6 Comments
You must be Logged on to comment or reply to a post.
Eddy De Clercq
Hi,
I wondered why you don’t use simplier methods like the one described in
https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/library/web
as/abap/just%20browsi
ng%20Around.article
I’m not saying that my code is better (in the contrary), but using the local machine as in
between stage could result in unwanted problems with the browser (see the multitude of
forum threads on the call_browser) or the file system (e.g. Tivoli managed PCs).
If the SAP server act as client you don’t need to worry about that anymore.
Eddy
o Like(0)
Hi Eddy,
But
1. cl_http_client is only available from 4.7 onwards at least I could not find it on the
4.6C version to which I’ve the access.
2. In order to make that work, we might well have to first configure the proxies or
firewalls, which does not actually belong to the expertise domain of ABAP
developers.
3. Ultimately, Google result has to be shown in a browser [ as whatever that was
called was not an API / web-service ]..unless you want to go for
pattern match and then get the text
Like(0)
Former Member
Ram,
I think it’s high time you download the NW04s preview edition which is here
on SDN and move on from your 610 you are missing out on
SOOOOOOOOOOOOOOOO much.
Besides configuring the proxy is nothing and most times it’s already done by
your Basis guys for many reasons.
Like(0)
Former Member
hi there,
I hope you’re not serious about using such a translation service for other reasons then for
making yourself a joke about it.
It’s not only those technical problems of line breaking or UTF characters, it just makes
almost no sense with respect to the very content.
please don’t you ever trust in this. but I am sure you were just doing this for the fun of it :-))
regards,
anton
o Like(0)
Like(0)
Former Member
Wow – I was looking around for some post to consume a webservice from ABAP while
avoiding PI. AND WebAS AND Java. Plus I have no experience with this. PI Proxy bring it
on. That’s easy.
Anyway – I came across your post. I’m glad you got a record number of responses! I’m glad
they are pointing people like me in the right direction. I am disappointed you didn’t get any
positive comments.
So years later, and a dollar short. Thank you for the post! The responses and the blog have
helped me out. I’m glad you were exploring different parts of SAP, and figuring out how
they work.
Michelle
1
2
3
Details
Code Snippets
// Explore More Tutorials
Meredith Hassett
12/02/2018
Beginner
15 min.
Add a code snippet from the API Hub into your ABAP report.
In this tutorial, you will learn how to use the pre-generated code from the SAP API Business
Hub in an ABAP report. You will need to have configured your ABAP system to make an
HTTP request.
Back to Top
Provide Feedback
Prerequisites
Configuring the proxy settings is not a required step for all systems. Verify that your system
needs to have the proxy configured before completing steps 1 through 3.
From the SAP Logon pad, launch the SAP Logon screen.
Enter the login credentials in R/3 ABAP System.
Configure your proxy settings by going to transaction SICF and clicking on Execute.
Open Proxy settings page by pressing Ctrl + F2 and set the proxy.
Done
Once you export the certificate by path, you will need to import it into your ABAP system.
To import the certificate in your ABAP system, go to the transaction STRUST, open SSL
client SSL Client (Standard), and switch to Edit mode.
Click on Import Certificate. Select the certificate you exported from Google Chrome in the
previous step. Click Add to Certificate List and save.
In order to reflect your new SSL settings, you will need to restart your ICM. To restart the
ICM, go to the transaction SMICM. Navigate to Administration > ICM > Exit Hard > Global.
The ICM restart message will appear. Select Yes.
Restart the ICM processes. Make sure no client is communicating during restart.
Done
Done
To get the ABAP code snippets that are available in the SAP API Business Hub, go to the SAP
API Business Hub, which can be found at api.sap.com, from your browser. Navigate to the
API packages page and find the SAP Translation Hub API.
Click the Expand Operations link on the Domains API. Click Generate Code on the GET
/domains method.
Click on the tab for ABAP from available languages and click Copy to Clipboard.
Paste in the copied ABAP code from the API Hub in the text box below.
Submit Answer
Back in your ABAP system, paste the code snippet into the report.
Replace the <API_KEY> with your API key value. This is also available in the SAP API Business
Hub and is specific to your user and app. Save, Activate, and Execute the report.
If you see a message returned with data, and not an error, you have successfully tested a
call to an API from the SAP API Business Hub
Log On
o Edit My Profile
o Account Settings
o Notifications
o Followed Activities
Logout
Home
Community
Archives
Discussions Archive
ABAP Development
Ask a Question
Write a Blog Post
Login / Sign-up
o Send a Message
o Manage My Blog Posts
o Quick Start Guide
Former Member
October 13, 2013 at 17:28 PM
0 Likes
Not what you were looking for? View more on this topic or Ask a question
9 replies
Copy Code
1 likes
Former Member replied
January 17, 2010 at 20:48 PM
Thanks Keshav. Appreciate if you could let me know how to pass parameters to this websites from ABAP?
The example would be I have a link(which is equal to web site) and when I call this link from ABAP i have
to pass a document number as a parameter to directly open a document. Any help would be appreciated.
Thanks,
GSM
0 likes
abilash n replied
October 13, 2013 at 17:28 PM
Excellent share Forest,Kesavadas,Rahul....