cancel
Showing results for 
Search instead for 
Did you mean: 

Insert graphic in WWI report dynamically

0 Kudos
1,456

Hi guys,

i have the following challenge and did not find a solution in the community so far, so i hope you can help me.

I want to insert graphics in a WWI dynamically during the creation of the WWI report. The graphics are stored on an external content server (non SAP) and are accessed in the ABAP coding through a web service call that returns the graphic as a raw string. So the graphics are neither stored on the WWI server nor in the sap system (e.g. in a document info record).

Do i have the chance to get a graphic dynamically in the WWI report without storing them in the SAP system or on the WWI server?

Thank you and kind regards,

Martin

Accepted Solutions (0)

Answers (6)

Answers (6)

christoph_bergemann
Active Contributor

Hello

your topic has discussed only once (if i remember correct) in a different thread. The story depends on the "WWI" and how WWI can "retrieve" the graphic.

Idrees has explained the "standard way of doing the job" There is only one add on to add

If you use e.g. a "user defined text" (or an identfier) as the "source" (and some report symbol) then you can retrieve e.g. a graphic (what ever object can be processed by WinWord (e.g. EXCEL, RTF, ....) which is stored in "DMS" (and not on WWI server).

Regarding WWI part. A wwi document (normal WWI document !) contains report symbols which are used in "Raw report" and those used in "end/final report". Not knowing the "type of graphic" we are talking about:

Idrees has explained the "raw report" story (which is available "out of the box" in WWI). For "final report symbol": you must do the whole job by your own

It is clear that the report generation process will only work if the "external system" is available 24 h 7 days the week; i propose that you should invest some time to look for the "DMS" option (as DMS is in SAP).

Anyhow: the different thread has shown: a solution is possible: but 100% of the work (as it is 100% customer driven) is on your side and therefore: we can not really help you

C.B.

PS: Check e.g. (sorry i could not find the one thread which i am referring to; but i know: it exists)

https://answers.sap.com/questions/10207302/wwi-insert-graphics.html

https://answers.sap.com/questions/11159687/does-wwi-supports-tiff-or-png-extension-of-pictogr.html

https://answers.sap.com/questions/2016146/wwi-include-dms-pictures-in-a-substance-report.html

https://answers.sap.com/questions/9338002/dms-original-embedding-within-cg42-template.html

https://answers.sap.com/questions/12727599/include-dir-original-in-wwi-report.html

https://answers.sap.com/questions/4823608/diplay-multiple-graphic-phrases-within-wwi-report.html

https://answers.sap.com/questions/9878345/index.html

https://answers.sap.com/questions/11093504/is-phrase-code-necessary-to-output-graphics-throug.html

and many other "similar" threads

0 Kudos

Hello Christoph,

at the moment I am just looking for a solution for raw reports.

The external system has the same availability like the SAP system, so this should not be a Problem.

And as i said, i already have a method in ABAP that calls a web service in the external system and returns the graphic file as a raw string. So my problem is that i don't know which report symbol to use to get the grafic data to the generated WWI file.

I will check how the DMS solution for user defined texts works, then i will maybe find out, how the graphic file is transfered from the document info record to the generated WWI file. But storing the graphics in document info records won't be the solution for us, because then the graphics will be stored redundant and we always would have to make changes in two systems

Thanks

Martin

christoph_bergemann
Active Contributor
0 Kudos

Dear Martin

this is your story according to my understanding:

a.) you are using "Recipe Development"

b.) you would like to prepare a WWI layout

c.) in the application (Recipe Development) we have "specifications" and we have "materials"

There is now a slight difference between "Specification" or "Material".

On Specification level you maintain e.g. "Density" "Color" etc. On Material level you define different attributes (e.g. texts etc.)

Now assuming that the graphic we are talking about is linked more to the "material" than the "Specification": We talk about a "final end report symbol" which could do the job

Reading between the lines: if material number is "X" you would like to consume graphic "Y" in the WWI report (honestly. quite tricky to set up this like as this is more like "master data" then "customizing", So you need some tables to store (and be able to maintain (insert update, delete)) this "link" of material number to graphic.

Now by using a "final report" symbol you can link a function module to this symbol. In doing so. Using ABAP you can do what ABAP allows; e.g. by using some "RFC" call to your "content server" in which the graphic is avaiable you retrieve the "graphic" and share the graphic to "WWI server", In WWI server the "graphic" can be consumed by WWI process and at the end the graphic is part of the "final report"

Something "similar" (to a certain extent) was discussed in a different thread; but i could find this thread now.

Any how: i believe technically: you will get a solution accepting the risks which i have listed shortly in my other answer but anything (that means ABAP coding etc.) is on your side as it is a more than >90% (using some EHS basic WWI features) a custom driven solution

C.B.

PS:

Dear Martin

regarding your comment as:

at the moment I am just looking for a solution for raw reports.

The external system has the same availability like the SAP system, so this should not be a Problem.

And as i said, i already have a method in ABAP that calls a web service in the external system and returns the graphic file as a raw string. So my problem is that i don't know which report symbol to use to get the grafic data to the generated WWI file.

I will check how the DMS solution for user defined texts works, then i will maybe find out, how the graphic file is transfered from the document info record to the generated WWI file. But storing the graphics in document info records won't be the solution for us, because then the graphics will be stored redundant and we always would have to make changes in two systems

==> this is my answer (refer partially above): If we talk about a "raw report symbol/Solution" you need still a "SAP table" in which you can establish the link between specification X and graphic Y (so that the process knows the "graphic ID" by "Spec id" and can retrieve the correct/wished graphic).

Then the story is like: generate an own "raw report symbol" and assign a function module to it. The function module would do the work (refer above) and the graphic should then be downloaded to WWI server and can be retrieved/consumed by WWI process

This process has clearly the benefit: you need not to "distribute" the graphics on any "local" or "common/General central" wwi server

PPS: If the graphic is "really unique" by spec id: the "user defined text variant" (as explained above) is more SAP standard and you will get the same solution (overall still the WWI report contains the wished graphic) without the need to prepare a seperat SAP table.

This "user defined text" variant is "simple to use" and "user friendly" and per spec you can maintain the relation (but ! you need one property to used and one data record therein with the correct usage) and you must ! prepare the link to DMS document). Using the "table" approch (refer above) you can ignroe "property/data record/usage" story"

A similar story is possible using "identifiers (as you can assign a DMS document as wel to an identfier), But overall: the "user defined text" variant is the clearly better solution option

christoph_bergemann
Active Contributor
0 Kudos

Dear Martin

as a final hint: the WWI process need to know the "graphic" type to handle. So if you "just" pass on the "graphic" via a "BIN" oriented string (you have used the term "returns the graphic as a raw string"): this is, from my point of view, not good enough. WWI can handle graphics only if they are linked to a graphic "type" as WWI is based on WinWord and WWI is using the "OLE" mechanism of WinWord So you need to "assign" a "type" of data (in this case a "picture type) to your raw string. This could be "JPG", "BMP", .etc but if you do not assign this information: I can not image that it will work. And as explained: the "raw string" must be transmitted somehow to the WWI server so that the WWI server can consume the picture

C.B.

PS: the positive part of your story would be: The graphic file need not to be distributed to any local client (for "Report from template" process)

Honestly: i would be interested if you can make your process work;

satya11719
Active Contributor
0 Kudos

Hello Martin Braun

  1. How many Graphics it would be ? more than 500 ? Make a different folder in WWI server with the name custom_graphics,(You don't need to create dummy graphic file for it all the time) place all graphic files with required naming conventions and create a custom program to access those WWI graphic files and maintain those graphic names in specification management (with User defined Text or phrases).
  2. As you know how to access the graphic file in external server, use the same name for Files which you store in WWI server with different folder name.(With out storing the graphic in server you cannot able to access with the ABAP code) (placing a dummy graphic file in WWI server will effect the performance of the server.)
  3. Create a required symbol coding in WWI , when you execute the report , SAP system will call external server with required graphic file, then according your ABAP code the graphic will check the naming with graphics present in WWI server folder and then it will give you the output.

No harm keeping new folder in WWI with 500 graphic files ,(it will not occupy more than 10MB).

PS: please let us know the requirement , why do you want to use 1 graphic for 1 specification ? I hope they are not GHS Graphics ? What are those graphics exactly ?

Thanks

Satya

0 Kudos

Hello Satya,

thank you for your comment.

As i said i am searching for a solution where we do not need to store the graphics redundant on two servers because any changes (that happen a lot) need to be made twice (on external content server and on WW server). So storing them on the WWI server won't be a solution for us.

It will be more than 1000 graphics and it is a scenario from recipe development where we want to

add a picture of the specification (material) to the WWI file.

Kind regards,

Martin

satya11719
Active Contributor
0 Kudos

Hello Martin Braun

It couldn't be possible with out maintaining the Graphics in WWI servers and as well as inPhrase management. It should be in standard format either .bmp or .gif.

SAP system will fetch Graphics always from WWI server based on the naming convention maintained in Phrase managment.

I didn't understand your requirement, How do you do this ? "I want to insert graphics in a WWI dynamically during the creation of the WWI report " without assigning symbol a graphic ?

"The graphics are stored on an external content server" ? how does SAP will communicate with this system ?

With out knowing the proper communication type we cannot comment on this .

Thanks

Satya

0 Kudos

Hello Satya,

i did not say that i do not want to use a symbol, but i do not know which symbol to use for my requirement

The graphics are stored on an external content server (different .png or .jpeg-files for every specification) because we do not use the SAP DMS solution (the other one is much more flexible and easy to use) and we do not want to store that much graphics redundant at several file systems.

I access the graphic file through a web service call in an ABAP method that returns the graphic file as a raw string. So i know how to get access to the graphic file in ABAP but i do not know which symbol to user to transfer it to the generated WWI file.

Thanks

Martin

0 Kudos

Dear Idrees,

thanks again.

With the way you explain the user who creates the report always has to copy the file to the folder manually, right?

Im searching for a solution, where no user interaction except starting the report is required. With Adobe Interactive Forms i have a scenario where it works like this.

So is it possible to move the file to the folder on the WWI server via ABAP Coding?

I want to avoid a scenario where we have to upload the graphic manually each time, because it would affect a lot of specifications.

Kind regards,

Martin

0 Kudos

Dear Idrees,

thank you for your answer.

Like you wrote, i am planning to fetch the graphic from the external server when i run the report and i do not want to maintain the graphics redundant in SAP or on the WWI server.

Could it be a possible solution to create a "dummy" phrase with a "dummy" graphic file on the WWI server and then always replace the dummy graphic file during runtime? If yes, how can i replace the file on the WWI server?

Thank you for your help.

Kind regards,

Martin

former_member3035
Participant
0 Kudos

Interesting scenario this is - From technical point of view - Yes It is possible!

Each time you execute the report - Before executing - User need to go the same Folder where Images are available and replace it, Make sure you overwrite it - Do not change the name of the image, Keep it same - Just overwrite it with the same name but new image. Below are some high-level point

1] Create a Phrase

2] Assign a Graphic to it - CG12 - Item level info - Assign graphic - Usually.Bmp format

3] In WWI Folder from where it is pulling these images make a note of it - make sure user have access to change it

4] When you want to run the report - Before running - GO to that folder upload the new image what you want - Make sure do not change the name of the image - Just Overwrite it with a new image but do not change the name

P.S: This is possible from a technical point of view - You can recheck with your business scenario in order to utilize standard functionality which will I recommend using

Thanks

Idrees