Application Development 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:Β 
A New Home in the New Year for SAP Community!

ChatGPT and AI chatbots

anne-petteroe
Employee
Employee

Hi everyone, 

As a moderator in the SAP Community I am seeing an increased interest for ChatGPT from many community members, and how this tool could be used in our daily work in the future. 

I am hoping we can get a lively discussion going here πŸ™‚ 
Please feel free to share your take on ChatGPT, possible specific SAP-related use cases, non-SAP use cases, ChatGPT capabilities, or any other ChatGPT/AI chatbots related information that you would like to discuss with peers in the Community. 


6 REPLIES 6

TammyPowlas
Galactic 6
Galactic 6
0 Kudos

Yesterday I was searching for a particular out of the box SAP Fiori app.  I couldn't locate it in the SAP Fiori library.  But ChatGPT tells me it exists.   I'm going to check that it really exists.

So perhaps a first use case is for the SAP Community user to ask their question, ChatGPT to provide an answer and ask the community member "does this solve your problem" and if not, go ahead and have the community user post their question.

0 Kudos

Please let us know if you find the Fiori app. Now I am very curious πŸ˜… Did you do a normal search in the Fiori App Library and got no results?

I did find the Fiori app with ChatGPT help today.  I was searching on different terms. I gave up yesterday using the Fiori apps library.  But then ChatGPT said the app was there, and then I was able to search for that specific app.

arunmaarirajha
Galactic 1
Galactic 1

Hello everyone,

Since Dec 2022 when ChatGPT was released for public to tryout, global tech industry is going gaga. Many have come up with apps, supposed built on top of the engine's API.

I have been exploring to see its capability to understand complex queries and offer solution and am simply amazed. I am sharing a few results, specifically related to SAP PO and CPI.

1) XSLT mapping – to remove namespace prefix in SAP PI

arunmaarirajha_13-1676453714478.png

arunmaarirajha_14-1676453714484.png

2) HMAC (SHA-256) authentication from SAP PI – using UDF

arunmaarirajha_15-1676453714491.png

arunmaarirajha_16-1676453714499.png

arunmaarirajha_17-1676453714503.png

arunmaarirajha_18-1676453714511.png

3) Call bash program to do base64 encoding from SFTP adapter OS command option

arunmaarirajha_19-1676453714518.png

4) Groovy script for xml validation against the schema

arunmaarirajha_20-1676453714524.png

arunmaarirajha_21-1676453714527.png

arunmaarirajha_22-1676453714535.png

5) Guidance on high-level design for complex requirement

arunmaarirajha_23-1676453714547.png

arunmaarirajha_24-1676453737309.png

The first impression for most of us might be scary to think whether machines are going to take away human jobs. It took a while for me to comprehend & reflect on the implications of a tool like think.

However, in my opinion, with the aid of AI tools like ChatGPT, we will all become more productive. The way of work itself will be transformed in a way that we can focus on more innovative, frontier expanding stuff, than on mundane activities.

0 Kudos

I tried to use it in order to have prototypes of some developments I have to design. I found useful but not perfect for specific situations. For exmaple I had to propose one solution to change purchase orders in order to force the creation of an output message on it. I was planning to get some code that would call one FM BAPI for example and IΒ΄d be able to validate it via SE37. It gave me the code on BAPI but with really bad example of parameters  so I could not do it.

DATA: lt_itemdata TYPE STANDARD TABLE OF bapimepoitem,
lt_return TYPE STANDARD TABLE OF bapiret2,
ls_itemdata TYPE bapimepoitem,
ls_headerdata TYPE bapimepoheader,
ls_return TYPE bapiret2,
lt_poitemx TYPE STANDARD TABLE OF bapimepoitemx,
lt_poheaderx TYPE STANDARD TABLE OF bapimepoheaderx.

ls_headerdata-ebeln = <purchase_order_number>.

"get PO output type
DATA: lv_nast TYPE nast-kschl.
SELECT SINGLE kschl INTO lv_nast FROM nast WHERE objky = ls_headerdata-ebeln AND objtype = 'BUS2012'.

ls_headerdata-bspma = lv_nast.

ls_itemdata-po_item = <item_number>.
ls_itemdata-bspme = lv_nast.

APPEND ls_itemdata TO lt_itemdata.

ls_return-type = 'E'.

ls_itemdata-po_item = <item_number>.

APPEND ls_itemdata TO lt_itemdata.

ls_return-type = 'E'.

APPEND ls_return TO lt_return.

APPEND ls_return TO lt_return.

"Add new output
DATA: lt_outputparams TYPE STANDARD TABLE OF bapiparex.

ls_headerdata-bspma = <new_output_type>.
APPEND ls_headerdata TO lt_outputparams.

CALL FUNCTION 'BAPI_PO_CHANGE'
EXPORTING
purchaseorder = ls_headerdata
testrun = ' '
TABLES
return = lt_return
poitem = lt_itemdata
poitemx = lt_poitemx
poheaderx = lt_poheaderx
outputparams = lt_outputparams. "add new output

IF sy-subrc <> 0.
"handle error
ELSE.
"successful update
ENDIF.

The same thing happened to code for sumbit job, The job is created with missing pieces and does nothing on SM37.

DATA: jobname TYPE tbtcjob-jobname,
jobcount TYPE tbtcjob-jobcount,
jobdata TYPE tbtcjob-jobdata.

CLEAR jobname.
CLEAR jobdata.
jobname = 'MY_JOB_NAME'.
jobdata-report = 'RSNAST00'.
jobdata-username = sy-uname.

CALL FUNCTION 'JOB_OPEN'
EXPORTING
jobname = jobname
jobcount = jobcount
IMPORTING
jobcount = jobcount
EXCEPTIONS
cant_create_job = 1
invalid_job_data = 2
jobname_missing = 3
jobcount_missing = 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.

CALL FUNCTION 'JOB_SUBMIT'
EXPORTING
jobname = jobname
report = jobdata-report
username = jobdata-username
EXCEPTIONS
invalid_job_data = 1
job_notex = 2
job_sched_noauth = 3
job_submit_failed = 4
job_not_authorized = 5
prog_notex = 6
prog_offline = 7
variant_notex = 8
variant_locked = 9
server_not_allowed = 10
OTHERS = 11.

IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.

CALL FUNCTION 'JOB_CLOSE'
EXPORTING
jobcount = jobcount
jobname = jobname
strtimmed = 'X'.

Those were my impressions so far. 

 

mehmetates
Employee
Employee

OpenAI is pretty advanced with thei GPT-4 language model and trying to keep up could be an expensive strategy with the risk that we could never reach their level.

But the NLP community is very active, there are several open-source language models which can be used commercially:

- RedPajama
- GPT4All-J
- StableLM
- Dolly 2.0

They are pretty new, therefore not at the same quality as the OpenAI products, but are growing and in a few months they could already be able to keep up with GPT-3.5 (ChatGPT).
Utilizing these open-source models and training them on SAP documentation could give us a competitive advantage with a high-quality SAP-optimized Chatbots without spending a lot of resources on creating a chatbot from scratch.