Skip to Content
Update (August 2014):

Version 3 of the how-to guide and solution has been released. Please see the blog at

How-to Load a File into BW-Integrated Planning (Version 3)

Note: The old version 2 is not compatible with SAP BW 7.4 or higher. If you are planning to upgrade to 7.4, you will have to install version 3!

 

Hello Friends,

thanks to your great feedback the updated solution is more robust and provides several enhancements. For example, it is now possible to upload a data directly from a BEx Analyzer workbook without promting the user for a file name. I have also implemented a file download application which closes the circle: Download, change file, upload, done!

Version 2.4 is now available. The new features are described below.

Please read How-to… Load a File into SAP NetWeaver BI Integrated Planning (Part 1) first.

Update: Please check the “known issue” section when upgrading to Enhancement Package 1 for SAP NetWeaver 7.0.

Download

There are two parts to download and another to check afterwards:

Enhancements

The first enhancement allows you to upload the file without prompting the user for selection criteria and a file name. This functionality can be used when you are running BEx Analyzer Workbooks. Save the plan data to a file (for example with VBA), then call the planning sequence for the upload by selecting a corresponding button on your workbook. The file upload will then pick up the file direclty from the PC. No further questions asked. Please see section 4.12 of the how-to paper.

The second enhancement is around the variable selections for the upload. The first version was limited to only single value variables. Now full selection options are available! The following types of characteristic variables are supported: single values, multiple values, intervals, and complex selection options.

Together with the selection options I also implemented support for personalization of the variables. The selection screen is therefore prepopulated with the values that are stored in the personalization (DataStore 0PERS_VAR).

The limitation on InfoObjects in the file format was removed. Now all InfoObjects can be used to define the file format. If the InfoObject is not included in the aggregation level, then it will simply be ignored.

File Download Application

Of course when you can upload files, you also want to download files. Right? The new version includes a file download application. It works very similar to the file upload. On the initial screen you enter the variables – in the example “Planning Version” – and pick a file format for the download. You can select “Text (Tab delimited)”, “Text (Fixed length)”, or “XML”.

Download Begin

When you choose “Download” the system will process the plan data with a planning function and provide a link for downloading the file to the PC. In the log you can see how many records where downloaded.

Download Middle

Further Enhancements

Version 2.3:

  • Support for user exit variables. Variable needs to be of type “characteristic value” and not ready-for-input. The exit is called with i_step = 1.

Version 2.4

  • Support for key figure values with thousand separator. The upload uses the setting from the user profile.
Your Feedback

Please keep your feedback coming. Post your requests for enhancements or ideas for additional features as comments to this blog.

Known development requests:

  • Support for hierarchy node variables (no plans)
  • CSV file format (no plans)
  • Preview of data before save (thinking about it)
Bug Fixes

All previously identified program errors have been fixed in version 2.4 of the solution.

Version 2.1:

  • Included missing HTTP service in transport
  • Disabled variable and file browse fields after selecting “Upload”
  • Fixed incorrect data during merge phase when field conversion is turned on
  • Fixed runtime error CALL_FUNCTION_CONFLICT_GEN_TYP when field conversion is turned on
  • Added automatic conversion of URL parameter to upper case
  • Fixed runtime error when using variables on attributes
  • Fixed a locking issue. Now plan data is properly unlocked after a save or undo.

Version 2.3:

  • Fixed error when variable is restricted to single value but field is not included in file

Version 2.4:

  • Fixed error when uploading key figure values with decimal comma

New bugs:

  • None

Known issues:

  • If you get a syntax error in WDDOONCONTEXTMENU, please update to BI ABAP support package 13 (SAPKB70013). As a workaround, go to SE80, select the Web Dynpro Component ZRSPLF_FILE_UPLOAD, navigate to view FILE_UPLOAD_VIEW and delete method WDDOONCONTEXTMENU manually. Then proceed the same way for Web Dynpro ZRSPLF_FILE_DOWNLOAD.
  • If you have no input variables at all and just exit variables, then the upload with display message “No variables defined for planning sequence. All data will be locked!” However, the exit variables still work and will lock the data properly. Here’s how to test it:
    – Start the upload web dynpro
    – Pick a file and select “upload”
    – Start GUI and go to RSPLAN > Locks
    – Check the lock entries for your InfoCube. You should see the locks based on your exit variables.

    If you want to suppress the message go to SE80 > Web Dynpro ZRSPLF_FILE_UPLOAD > View FILE_UPLOAD_VIEW > Method WDDOMODIFYVIEW and change the following line:
    *     No variables defined for planning sequence
    *     add_message( i_msgty   = ‘I’ i_message = ‘043’ ).  “<<< delete

  • If you upgrade to Enhancement Package 1 for SAP NetWeaver 7.0, please implement SAP note 1315474 “WD ABAP: Message Area is not visible”
To report this post you need to login first.

314 Comments

You must be Logged on to comment or reply to a post.

  1. Former Member
    Hi Marc, good morning / evening.

    I just implemented two planning functions that run by planning sequence into a WAD template. One for download the Planning content and another one for UPLOAD into Planning. Both files used are CSV format, so I don’t see any problem with that. The issue here is that in both cases it is working fine, but in some cases I get the attached error message (SP15) when uploading the file. We are using BI-IP 7.0.

    By what could it be caused?. Thanks in advance!!.

    Detailed code sequence:

    The following error text was processed in the system HCD : Message incomplete (seriousness, area, number, or exception missing)
    The termination type was: ERROR_MESSAGE_STATE
    The ABAP call stack was:
    Function: BAL_LOG_MSG_ADD of program SAPLSBAL
    Function: RSPLFR_SERVICE_LOG_ADD of program SAPLRSPLFR_LOG
    Method: LOG_ERRORS of program CL_RSPLFR_CONTROLLER==========CP
    Method: EXECUTE_SERVICE of program CL_RSPLFR_CONTROLLER==========CP
    Method: EXECUTE_PLSQ of program CL_RSPLFR_CONTROLLER==========CP
    Function: RSPLSSE_PLSEQ_EXECUTE of program SAPLRSPLSSE
    Method: ONACTIONON_UPLOAD of program /1BCWDY/3SSD22CILSA35Z1SEDBP==CP
    Method: IF_WDR_VIEW_DELEGATE~WD_INVOKE_EVENT_HANDLER of program /1BCWDY/3SSD22CILSA35Z1SEDBP==CP
    Method: INVOKE_EVENTHANDLER of program CL_WDR_DELEGATING_VIEW========CP
    Method: IF_WDR_ACTION~FIRE of program CL_WDR_ACTION=================CP

    (0) 
    1. Marc Bernard Post author
      Hello Gerardo,

      sorry for the late reply, I was on my honeymoon. The error is caused by the planning function. Please open a customer message and have it forwarded to me so I can debug the problem.

      Regards
      Marc

      (0) 
  2. Former Member
    Hi Marc
    We use this solution to upload files (with ca. 15000 records). The solutions works perfectly if there are no errors.
    But if there are errors it takes a long time (several minutes) untile the error messages will appear on the screen. How can we solve the problem. Is it possible that the programm exits after the first error?
    Thanks a lot for your help
    Sascha
    (0) 
    1. Marc Bernard Post author
      Hello Sascha,

      if there are many messages, the display takes a long time. There’s no way to exit after the first error since these are raised by the planning function which runs in one piece.

      You can implement a few lines of code to reduce the number of messages but in general it’s a problem with the upload file so one (or several) messages are raised per record. So check the file format, etc.

      Regards,
      Marc
      SAP NetWeaver RIG

      (0) 
  3. Former Member
    I have two filters for Company Code and Version

    1. If I enter ’30’ for Company Code and ’50’ for Version, I get this error message
    ‘You have to enter variables before you execute’.

    2. If I enter ‘0030’ for Company Code and ’50’ for Version, I get this error message
    ‘Errors while executing sequence. Inconsistent input parameter (parameter I_KHANDLE, value 0000).

    3. If I enter ‘0030’ for Company Code and ‘050’ for Version, it works.

    Can you explain why I get the first two errors? Also, do the filter values have to be zero-filled if the underlying InfoObject have an Alpha Conversion??
    Thanks.
    Ryan

    (0) 
  4. Former Member
    If the user enters an incorrect variable value, they get the “You have to enter variables before you execute” error message instead of a clearer message such as “Value xx for variable xxx is invalid”.  I am also on v3 of the File Upload.

    I have implemented Note 1149504 but I still get the error.

    We are on SP17 and I have implemented to following OSS Notes trying to resolve this issue:
    1152186
    1250076
    1121202
    1133674
    1140808
    1146094
    1149504
    1222910
    1264213

    Any ideas?
    Thanks.
    Ryan

    (0) 
  5. Former Member
    Hi Marc,

    We Implemented the loading of flat file through BEx using the “How to
    Load a Flat File in SAP BI Integrated Planning Using BEx” and now,
    after the go-live we are experiencing some problems.

    During the development phase, we did the following tasks:
    – Instead of changing the standard class ZRSPL_FILE_UPLOAD, we created
    a new one ZZRSPL_FILE_UPLOAD, deleted the code beneath,
    IF_RSPLFA_SRVTYPE_IMP_EXEC~EXECUTE method and placed the code supplied
    by the “How to”.

    After that we created a new function type and associated the class
    previously created. We made everything in planning modeller and created
    a button to call the planning sequence.

    We executed the testing phase in our computers, as we are external
    consultants.

    The problem now is that our final user isn’t being able to use the
    developed solution in their computers.

    After pressing the button to upload the file in Workbook we have the following error After pressing that button the following error
    “Exception condition “NOT_SUPPORTED_BY_GUI” raised.

    Can you help us?

    many thanks

    (0) 
    1. Marc Bernard Post author
      Hi João,

      I’m not sure if you copied the code to your own class correctly. Why was it necessary to make your own copy anyway? You also have to make sure that the class is linked to the Web Dynpro application for example. I suggest to test the upload with the standard code, first (on your and the user’s computer).

      Also check which GUI is installed on the user’s computer. It has to be SAP GUI for Windows (not SAP GUI for HTML, see note 314568) since this is the only one that supports upload/download of local files.

      Regards
      Marc

      (0) 
  6. Former Member
    Hi Marc,

    I have a question to the BI IP File Upload solution.
    I get the following error when I try to upload a flat file via BI IP.
    Errors while executing sequence Planning Sequence Key Fin Upload

    Planning function File Upload ended with errors

    If I use a the filter with a variable I get this error. If the filter has a fixed value, the upload works fine. This error occurs only if the cube has no data. If the cube have any data it works also with a variable in the filter.
    Do you have a idea what’s the problem?

    You also write in the blog, that you have a solution to creat master data during the Uplaod via BI IP. Is it possible that you send me this solution per email? My email is cherbst@csc.com.

    Thank You
    Best regards
    Constantin

    (0) 
  7. Former Member
    Looks like your download functionality dumps the technical names of the column headers. Our Clients are asking for the Description of the column name instead of the Tehcnical Name.

    Would appreciate if you can give us a quick fix if that’s possible…

    (0) 
    1. Marc Bernard Post author
      Hello Kiran,

      you have to change the code:
      Class ZCL_RSPLF_FILE_DOWNLOAD
      Method _CONVERT_TAB_TO_STRING
      After CONCATENATE l_iobjnm l_length INTO l_field insert the following line:
      l_field = l_s_cob_pro-txtlg.

      Regards
      Marc

      (0) 
  8. Former Member
    Hi Marc,

    can your upload/download functionality be modified to work the same way as the old BPS APIs, such as API_SEMBPS_GETDATA, API_SEMBPS_SETDATA?   I.E. call your download functionality to retrieve planning data into 3rd party software program. User works with the data and when ready to save, we call your upload functionality to save the data to real time cube?  But you would need to also add locking during the download, I guess.

    We are just trying to find a way of re-creating the BPS APIs in the BI IP environment, where they are not currently available, but we hope SAP will make them available in a future release???? any idea?

    (0) 
    1. Marc Bernard Post author
      Hello Zlatko,

      locking is not the same as offline planning. Locks are set online and will eventually timeout. Using locks for offline planning is therefore not feasible.

      You could add an exit functions into the download planning sequence, where you same the selection criteria into a custom table (=locked). Then you do the same with the upload planning function where you check the criteria in another exit function. If they exist already, the data is locked and you raise an error message.

      Regards,
      Marc

      Note: You can use the BPS APIs together with BW-IP on the same InfoCube.

      (0) 
  9. Former Member
    Hi mark,
    I already implemented your BI Upload function to cube, everything is superb. But my problem is, i attached the url link in my wad button and right now i just hardcode the url based on the webdynpro application url. So if i transported it over to Testing, Production box, i need to change the url so that the source system follows the current box. How do i make the url become dynamic?
    (0) 
        1. Former Member
          Oh yea! Btw, i managed to do this by just calling the service without the system name. Eg: in my url i just call this string ‘/sap/bc/webdynpro/sap/zrsplf_file_upload?sap-language=EN&planning_sequence=ZPOFUA_06&’. And the system will recognize which is the current system by itself.
          (0) 
  10. Former Member
    Hi Mark,
    I created a wad planning layout, in this layout there is a button to launch the upload file webdynpro. Before user get into the wad planning layout, they will have to input some variables on the variable screen. Once they get in, they would want to launch the upload program by clicking the button i mentioned above.

    My question is:
    1) Can we link the variable from the wad screen with the variable in the upload webdynpro program which is use for locking the cube when during upload? How do we do this? They are in difffrent session right?

    (0) 
    1. Marc Bernard Post author
      Hello Alfonso,

      it’s not possible in the current version of the file upload. Next version will include support for the report-report-interface. Then it’s very easy to do what you want. Send me an email if you want the beta for this version.

      Regards,
      Marc

      (0) 
  11. Former Member
    Dear Marc,

    I recently found on this blog that you are preparing a new version of upload/download IP feature.
    You have to know this feature is very appreciated by end user and to my mind should be included as standard
    within next 7.x release.

    Using this webdynpro very often, here they are some enhancements suggestions:
    – support of different column separator symbol; currently only tab separator is supported.
    It may be useful to define separator symbol as for CSV file english users use comma separator
    and french users use semi-colon separator. you can take MS-Excel file import wizard as reference for options.
    This will facilitate end user experience.

    – merge upload/download within one interface; this would be great to go further in your idea 1- Download data, 2- change data, 3- Upload data.
    This can be rendered, at display, as a wizard. So end user could choose between download or upload file at first screen/step.
    This will help to reduce number of portal iviews

    – enable multiple planning sequence; user could select file and also select one planning sequence to run (provide within URL).
    For example, user could within same interface upload multiple file. Description shown in selection would be planning sequence text.
    If there is only one planning sequence provided within URL, no selection would be available for end user otherwise a dropdown list appears.
    This will help to reduce number of portal iviews

    – merge upload & save button; we faced some lock issue when user upload file, forget to save and leave screen.
    Moreover because there is currently no way to check uploaded data directly, cancel button is useless.

    – able to overwrite function upload/download parameters; very often we have to change overwrite data paramater or character format.
    within webdynpro, on URL setting (if for example BYPASS=X), we could bypass what is defined within function for character format, overwrite, skip header line…
    user could you default provided settings or change them (say add file data to existing instead of overwrite existing data)
    This will help to reduce number of planning function/sequence & portal iviews.

    – sometimes we would like to upload file without any ratio data, in meantime we would like to set ratio to a constant to all records.

    we use this to upload mapping table (1 is active, 0 is inactive).
    as a upload function parameter we could imagine to select a ratio and a constant to assign.
    if this parameter is empty, ratio should be within provided file.

    – very often, end user is confused by planning sequence message which is a lot of time linked to bad file format (missing tab or tab replace by space)
    one additional feature could be at file upload to show a report of what was uploaded before any planning sequence run.
    at least visualy this can prevent bad file format error. this can be displayed as a table with x first lines. first column is line number (generated)
    header will be replace by header line (if any) or column number.

    – another feature could be to transpose columns into rows at file upload (like same EXCEL feature).
    for example you have to upload KPI named KPI01, KPI02… KPI01, KPI02 are in columns (one record line)
    we could imagine one function setting that specify which characteristic is in column instead of line with start & end column number.
    once file is uploaded it is “transpose” to corresponding line (one record becomes two)

    These are suggestions for enhancing current version that is already very good.

    Hope it helps,
    Have a nice day,
    Olivier

    (0) 
    1. Marc Bernard Post author
      Hello Olivier,

      thank you very much for your detailed suggestions. I’m sure you will like the next version because a lot of the suggestions will be included!

      A couple of the items you listed can be done already: You can use a variable for the parameters of the planning functions. This way users can pick their own parameter values. Also please have a look at my blog about filtering messages: http://www.sdn.sap.com/irj/scn/weblogs?blog=/pub/wlg/11532

      Best,
      Marc

      (0) 
    2. Former Member
      Hi Marc,

      I don’t have sufficient authorization  to copy the transport files and import them. May I know whats in the transport files ( K900516.BIR and R900516.BIR ). Is it possible to create them manually rather than use the transports??

      Thanks,

      DV

      (0) 
  12. Former Member
    Hi Marc,

    Sorry for double posting. I am new to blogging in SDN..

    I don’t have sufficient authorization to copy the transport files and import them. May I know whats in the transport files ( K900516.BIR and R900516.BIR ). Is it possible to create them manually rather than use the transports??

    Thanks,

    DV

    (0) 
    1. Marc Bernard Post author
      Hello DV,

      the transport contains over 70 objects and over 15,000 lines of code. I really don’t think you want to create these manually. Ask your basis team (administrator) to help you with the transport files. It’s the right thing to do because they know how and will also be aware of any company policies that have to be taken into consideration.

      Regards,
      Marc

      (0) 
  13. Former Member
    Hello Marc,
    We want to upload special signs in a chararecteristic and we get “conversion” errors.
    Dou you have a hint for us?
    Thank you.
    Aynur
    (0) 
    1. Marc Bernard Post author
      Hello Aynur,

      first check if the special character is allowed in BW in general (transaction RSKC). If yes, check that you configure the same character set (codepage) in the upload planning function that corresponds to your file (UTF-8 for example).

      Regards,
      Marc

      (0) 
  14. Former Member
    Hi Marc,
    is there a limitation on the number of rows for the upload function? I checked this blog and couldn’t find a hint for this, also it’s not mentioned in the documentation.
    XLS: 1275 rows (all different->no aggregation)
    48 Infoobjects
    UTF-8 Codepage
    188 KB – TXT-size

    Thanks for your help.
    Aynur

    (0) 
    1. Marc Bernard Post author
      Hello Aynur,

      there’s no limitation in the file size or number of InfoObjects. I have loaded 100,000 records without problems. Big files (your’s is still pretty small) obviously take longer to process. Runtime depends also a bit on the characteristic relationships in your model.

      For big files, I generally recommend to load them in batch using BW file upload.

      Regards,
      Marc

      (0) 
      1. Former Member
        Hello Marc,
        we have the following problem:
        rows in XLS: 1275
        rows uploading into Cube: 1188

        Number of characteristics defined in XLS and in IP-Cube are the same, so there should not be aggregation.
        I checked the XLS-file and all rows are different.
        Thanks for your help.
        Regards,
        Aynur

        (0) 
        1. Marc Bernard Post author
          The data is converted to the internal format. Values that look different in XLS might be the same in internal format. Check the data in transaction LISTCUBE and compare it to your file.

          Marc

          (0) 
  15. Former Member
    Hi Marc,
    First of all, this is a fantastic tool!! Great Job.
    Is there any way to see data in a report after uploading and before saving??
    I tried using 0S_RQTRA variable but nothing is shown before saving.

    Thanks for your help.
    Carlos

    (0) 
  16. Former Member
    Hi Marc,

    1. Wondering if we have any updates on Hierarchy nodes as selection for Upload? We have a requirement and we intend to use this solution. The users would be updating data at Profit Center level, but should be restricted to node they are authorized to load. Any comments?

    2. We are actually replacing standard load functionality with this one because of some process changes and as a result we need to incorporate some update routine rules in this solution. Some of them are below.

    a. We do some calculation for dollar values based on some characteristic values. Can this be done?

    b. we combine fiscal year with fiscal period to get fiscal year period. Can this be implemented too?

    c. Once all users have uploaded thier files for particular version, we want to copy loaded data into some new version. Is it possible to do?

    Appreciate your comments.

    Thanks,

    DV

    (0) 
    1. Marc Bernard Post author
      Hello Dave,

      1) The requirement is known but very difficult to implement. It won’t happen any time soon (if at all). Nevertheless, you can still use hierarchy nodes in the authorizations. The selected PCs will be checked properly and users won’t be able to load data for unauthorized PCs.

      2) The upload is based on a planning sequence. You can simply add planning functions like copy or FOX as subsequent steps. This way you can calculate anything on top of what’s being loaded.

      Fiscal year period should not be included in the aggregation level of the upload and will then be automatically derived (using the build-in characteristic relationship for time dimensions).

      You final version copy has to be done separately from the upload since you want to wait until everyone is done.

      Regards,
      Marc

      (0) 
      1. Former Member
        Hi Marc,

        First of all thanks for your quick response.

        1) Just to confirm, If I am a User authorized with for around 5 profit centers under a hierarchy node level, I can select this node in my selection and upload the file? Will this validate the upload file against user’s authorization?

        2)I will try .. I just need the calculations or derivations done with data in the upload file before it is stored in the cube. So this is possible?

        Fiscal year period should not be included in the aggregation level- Is this valid for Calender year month too?? How does system chooses appropriate Fiscal Year Variant?

        For the Final version copy, do I have to create a new Webdynpro interface? Can you please explain how i go about it?

        Thanks,

        DV

        (0) 
        1. Marc Bernard Post author
          1) The user has to select the single profit centers (nodes are not supported). The file will be validated against any authorizations (values or nodes).

          2) It works like a regular planning sequence. Changes are saved only at the end.

          See http://help.sap.com/saphelp_nw70/helpdata/en/44/be8b631c743959e10000000a1553f6/frameset.htm

          This discussion goes beyond the blog/file upload. Please post further questions to the Business Planning forum.

          Marc

          (0) 
  17. Former Member
    Hi Marc,

    We dont intend to upload Currency Key as part of the load. We have plans to derive currency based on region information. When tested, the solution says “No unit/currency entered for key figure 0AMOUNT”. Is there a way to resolve this?

    Thanks,

    Prakash

    (0) 
    1. Marc Bernard Post author
      Prakash,

      the currency key is automatically included in the aggregation level when you add a key figure. Therefore it has to be part of the upload. Otherwise the data would be inconsistent.

      Regards,
      Marc

      (0) 
  18. Former Member
    Hi Marc,

    Just another question. We have users with authorization to specific nodes in Plant Hierarchy. As per your reply on Dave’s question below, I understand that solution will prevent users from uploading data for Plant from other nodes if they are not authorized to that node.But will it also lock lock data based on their authorization? If yes, how can we achieve this?

    Thanks,

    Prakash

    (0) 
    1. Marc Bernard Post author
      Prakash,

      data will be loaded based on the variable selections. If it’s a ready-for-input variable users will have to enter the selection (as values or ranges).Or use an exit or authorization variable in the filter (no user input).

      Regards,
      Marc

      (0) 
  19. Former Member
    Hi,

         I am trying to load a file by using FileUpload planning function i face a problem.when i am trying to upload blank or # value for perticular char InfoObj.Similerly i need to implement lookup process from masterdata of 0customer.

    Please help me anybody to resolve this issue.

    (0) 
    1. Marc Bernard Post author
      Hello Dileep,

      I tested it using an empty field and it works fine. What kind of error do you get?

      If you need to derive value, use a characteristic relationship or add for example a FOX function to the end of the upload planning sequence.

      Regards,
      Marc

      (0) 
  20. Former Member
    Hi Marc

    If I paste the URL within the RSPLAN session then the upload service works no problem.

    I can upload files into my plan cube.

    However if I test the service or call the URL from the Portal it asks for an https with login details. Is this a HTTP/HTTPS setting within the sicf-service?

    Regards
    Graham

    (0) 
    1. Marc Bernard Post author
      Hello Graham,

      the file upload is no different than any other ABAP WebDynpro. Please check SAP Note 1590200. Of course you nned to have single-sign on configured properly between your portal and the BW system. Use the BI Support Desk Tool to check it (SAP Note 937697).

      Regards,
      Marc

      (0) 
  21. Former Member
    Hello,

    We are using this method to upload some of the plan loading. SAP has changed moved Integrated Planning from Java Stack to ABAP Stack in 7.3 version. So will this application work in 7.3? If not what we will have to for this?

    Regards
    Saurabh

    (0) 
    1. Marc Bernard Post author
      Hello Saurabh,

      the file upload does not require a Java Stack. I should work just fine on BW 7.3 but it would be good to get some feedback from customers who have tested it more extensively than me.

      Best,
      Marc

      (0) 
      1. Gopi R
        Hello Marc,

        Thanks for
        I have a autorization InfoObject CHORGSTR (Organisation structure) compunded with 0CO_AREA (Controlling Area). I can use the hierarchy variable in Input ready query. But in the planning file Upload I use characteristic variable for CHORGSTR. When I upload the file I am getting error that 3010/0150 (CHORGSTR/0CO_AREA) value for CHORGSTR is invalid. From my analysis I could find the function takes values reversely instead of 0150/3010 (0CO_AREA/CHORGSTR). Is there any format change need to be done for this ?

        Thanks,
        Gopi R

        (0) 
  22. Former Member

    Hi Marc,

    I am implementing the web based upload function in IP and encountered to a strange error message.

    I have configured the upload function which opens correctly in the browser.
    I can fill in the variables, select the txt file and initiate the file upload.
    But after pressing the ‘Upload’ button I get the following message:

    Error – File Upload: Turn on “Log on with Attached SAPGUI” setting”

    I understood from your paper that this setting only plays a role when uploading from BEx. Could you advise on this issue?

    thank you
    Peter

    (0) 
    1. Marc Bernard Post author

      Hello Peter,

      this happens if the file content cannot be loaded to memory and the mimetype cannot be determined by the browser which you use to upload the file (the system then attempts to load via SAPGUI which won’t work either since you use the web version).

      If you know how to debug, set a break-point in web dynpro ZRSPLF_FILE_UPLOAD (or ZRSPLF_FILE_UPLOAD_V3), view FILE_UPLOAD_VIEW, method ONACTIONON_UPLOAD. The variables wd_assist->n_content and wd_assist->n_mimetype must be filled. If not, please check your PC/browser setting (or try a different browser).

      Regards,
      Marc

      (0) 
      1. Former Member

        Hi Marc,

        Thanks very much for helping on this.

        Debug shows that both variables got a value:

        WD_ASSIST->N_MIMETYPE  = text/plain

        WD_ASSIST->N_CONTENT = 323031323031093130302E30300D0A323031323032093135302E30300D0A323031323033093238302E30300D0A323031323034093332302E30300D0A20

        I tried with IE 8 and Mozilla 3.6 and I got the same error msg.

        Any futher settings I could check?

        thanks,

        Peter

        (0) 
        1. Marc Bernard Post author

          OK, the loading works properly. The question is now why the data is not passed to the planning function. Please send me an email so we can discuss next steps.

          Marc

          (0) 
    1. Marc Bernard Post author

      Hello Apan,

      I have not been able to make this work since the GUI logon option is not available for the standard Analysis Office solution. I will have to see if there’s another option.

      Marc

      (0) 
  23. Former Member

    Hello Marc,

    We are planning to implement IP File upload functionality in BW7.3 system.

    In BI7.0 system we were using Excel copy-paste fucntionality and then we have upgraded the system to BW7.3.

    In BW7.3 when we try to import(adding to transport buffer) the files K900516.BIR and R900516.BIR (Date modified: 02/06/2008),  we get the errors. “The installed release does not match”.

    Our basis guys are saying the transport files were generated in BI 7.0 so they are not compatible with BW 7.3.

    Do you have any plans to release transport files that are compatible with BW 7.3?

    Looking forward to receive your response soon.

    Many Thanks.

    (0) 
    1. Marc Bernard Post author
      Hello Pundari,  The upload is compatible with 7.3. Just set the flag to ignore release depenencies when importing the transport.  Best, Marc
      (0) 
  24. Former Member

    Hello Marc,

    Congratulations ! very interesting work.

    i have an error when trying to upload a file with a 0calmonth column in external format YYYY-MM (example 2013-04), function write_line_to_data_tab called by

    zrsplf_file_upload_write_line is handling this column as a number not a date.

    is it a bug ? have you a solution for that ?

    Thanks again.

    Regards,


    (0) 
    1. Marc Bernard Post author

      Hello Anass,

      you have to turn on the “Field Conversion” option in the settings of the planning function (chapter 4.7).

      Regards,
      Marc

      SAP Customer Solution Adoption (CSA)

      (0) 
  25. Former Member

    Hello Marc,

    we want to use the upload in a scenario which replaces  a former CO-PA-planning with IP (the user will be the controller of the company). Unfortunately we encounter now a serious problem: Files (even short files for testing with a few lines, in the end they will load up ta few 10k of lines) are not uploaded completely and sometimes instead of uploading the files the function reloads data which was deleted a short time before from the cube. So we get already deleted data instead of the data in the files.

    Of course as controllers want to get the data, we need many derivations and checks etc. but these do work fine in the Excel workbooks we have to use so everything should work in the upload as well. Do you have any suggestion where we can find out what causes this problem (maybe some kind of buffer in the function, the portal or the SAP-system)?

    Many thanks in advance.

    regards

    Achim

    (0) 
    1. Marc Bernard Post author

      Hi Achim,

      I have not heard of such issue before. Please open a customer message and open the connection to your system so I can take a look. Send me the message number via email.

      Regards,
      Marc

      SAP Customer Solution Adoption (CSA)

      (0) 
  26. Former Member

    Hi Marc,

    We have implemented IP File upload function successfully, however we are facing issue with Delta mode, during our build stage and testing (Dev Sys nad ITC Sys) the Delta function works fine, BUT unfortunately it is not working in our CAT system. we have no transport errors of the objects (including the custom transports for IP file upload), could you please help us if there is any other way to check and findout the reason for the Delta mis-behaviour, we did check in SPRO and the ABAP classes, they all look ok.

    Thanks for your help and advise.

    Regards

    Charan

    (0) 
  27. Former Member

    Hi Marc,

    I am working on SAP-IP File upload functionality & would like to load a file with 2million records.
    I saw your answers to some of the discussions but, could not get straight answer for WHETHER THERE IS ANY FILE SIZE LIMITATION TO UPLOAD THROUGH SAP IP UPLOAD FUNTION’
    Appreciate your response

    Thanks
    Shirish

    (0) 
  28. Former Member

    Hello,

    Thank you for the implementation, truly.

    Is it possible to deactivate the variables personalization for the webdynpro? So they cannot automatically appear on the input screen.

    Regards,

    Saphir TMA.

    (0) 
    1. Marc Bernard Post author

      Hi Saphir,

      I’m glad you like the upload. Two ways to deactivate the personalization. 1) Use a different variable or 2) Modify the ABAP code of WebDynpro view FILE_UPLOAD_VIEW method WDDOMODIFYVIEW and remove the LOOP after “* Copy personalization”.

      Regards,
      Marc

      SAP Customer Solution Adoption (CSA)

      (0) 
      1. Former Member

        Hello Marc,

        Thank you for the solutions, we went for the 2nd solution which indeed deactivated the personalization variables from being displayed, but still, an issue remains.
        We completed the upload file webdynpro with a copy planning sequence (FOX), and that latter one uses the personalization variable instead of the inputted ones. Even if the personalization variable are not displayed.

        We cannot change the variables, it will demand a lot of change through codes and reports.

        Any idea how to force the whole webdnypro (upload + FOX copy) to use the inputted variables and not the personalization ones?

        Best regards,

        TMA Saphir.

        (0) 
        1. Marc Bernard Post author

          There’s nothing you can do in the file upload. If your FOX functions use personalized variables and you want to use input variables without personalization, then you really need to change the variable settings (or delete the personalized values from DSO 0PERS_VAR).

          Marc

          (0) 
  29. Former Member

    Hello Marc:

                          We are on 7.3 system. We applied the .BIR files and everything looks good. When I tried to edit the method

    IF_RSPLFA_SRVTYPE_TMP_EXEC~EXECUTE in the Class Interface ZCL_RSPLF_FILE_UPLOAD I cannot edit it. How can I enhance the functionality of this method?

    Here is my scenario..

    a) Input file contains Spending plan data which has 12 periods. Which means file contains data with each row having 12 key figures as columns one for each period.

    b) Planning data model contains characteristics period and a single Key Figure. 

    c) Which means the file that will be loaded needs to be converted for each row into multiple rows.

    Input file conatins each row as

    Commitment Item, KeyFig1,KeyFIg2,KeyFig3……..KeyFig12

    Data Model Aggr Level contains

    Commitment Item, Period, Amount

    d) I need to enhance the upload functionality so that I can write my own code to do the conversion.

    But in edit mode the method (mentioned above) is greyed out.

    If I use “Enhance” Implementation option I can only enhance at the beginning of the method or end of the method which is NOT helpful. Any suggestions are highly appreciated…

    (0) 
  30. Former Member

    Hi Marc.

    We’re using this solution and it work fine in SAP Netweaver 7.0, and recently we’re upgrading our system to SAP Netweaver 7.3 and when we try to import the object, the status in STMS indicated messages “Does not match component version”. Should we continue to import the object, is this solution compatible with SAP netweaver 7.3? Your advise is highly appreciated.

    Best Regards,

    Bobby

    (0) 
      1. Former Member

        Hello Marc,

        We are trying to import the files into BW7.3 but facing problem. It’s giving the error described below.

        Error:

        1 of 1 requests do not match the component version of the target system.

        Message No. XT216

        It will be great if you could support to solve the issue.

        Thanks,

        Rahul

        (0) 
        1. Marc Bernard Post author

          Rahul,

          you can simply set the “Ignore Component Version” option ON when importing the transport.

          Regards,
          Marc

          SAP Customer Solution Adoption (CSA)

          (0) 
          1. Former Member

            Hi Marc,

            We tried with the option by setting “Ignore Component Version” option ON when importing. It’s giving error below. I have tried by downloading the files again and imported also.

            Result of cross-total check indicates a damaged data file (156381)

            Please contact the SAP support.

            Dictionary import

            End date and time : 20130827093336

            Ended with return code:  ===> 16 <===

            Could you please help?

            Thanks,

            Rahul

            (0) 
    1. Former Member

      Hello Bobby,

      We are also facing same problem, and tried to import bu facing error

      1 of 1 requests do not match the component version of the target system.

      Message No. XT216

      Could you please let me know if you get succeeded in importing the files and uploading files into Integrated Planning in BW7.3. It will be great if you could help.

      Thanks,

      Rahul

      (0) 
  31. Former Member

    Hi Marc,

    I have to upload file into Integrated Planning in BW7.3, as per the how to document when I try to upload saying the zip files K900516.BIR and R900516.BIR are not compatiable.

    Can you please sugges is there any way to upload file into BW7.3 Integrated Planning with new files?

    Thanks,

    Rahul

    (0) 
  32. Former Member

    Hi Marc,

    thank you for your solution, we have used it successfully for several years now!

    The users have had Windows XP and IE7. Upgrading to Windows 7 and IE 8 (or 9) have caused now troubles when opening the portal page used for this solution. Do you know if there is a known issue using Windows 7 and/or IE 8/9 and how to solve it?

    Best regards,

    Sari

    (0) 
  33. Former Member

    Hi Marc,

    we are using BW 7.3 but we don’t have the Java Stack. We want to have an Excel-based application and use the “SAP work directory” functionality. What is the valid directory for SAP GUI for Windows 7.20. Can we use the following directory:

    C:\Users\<username>\AppData\SAP\Common

    Thanks a lot,

    Theo

    (0) 
  34. Former Member

    Hi Marc,

    Thanks for this solution which we have been using extensively for several years on BW 7.0.  We have recently upgraded to 7.3 in our dev environment and while testing we have picked up an issue with the file upload process.  In most cases where we use the file upload we call a planning sequence that contains 1 step (i.e. 1 aggregation level, 1 filter & 1 planning function) and these are working fine.  However, in a few cases we call a planning sequence that contains multiple steps and these uploads fail with the message “Filter and function have different InfoProviders”. 

    Do you have an idea as to what is causing this error & how we can resolve it?

    Regards,

    Julia

    (0) 
      1. Former Member

        Dear Marc,

        Concerning the upload solution, when we press the upload button, we exit the browser, we try again to connect to the browser and use the upload screen to upload the file, we cannot upload because the data is locked, we have to use SM12 to unlock data.

        Could you please help us to find a solution to this problem?

        Thanks a lot.

        Sofiane

        (0) 
        1. Marc Bernard Post author

          Hello Sofiane,

          I tested it on BW 7.30 SP 10 and the locks are automatically deleted when I close the the browser (IE 10). Which release/sp level and browser are you using?

          Regards,
          Marc
          SAP Customer Solution Adoption (CSA)

          (0) 
          1. Former Member

            Hello Marc,

            I’m using IE7 on BW 7.01 SP06.

            After receiving your response, I did the following tests :

            – Test With BW7.01 SP06 IE10 ==> I have the same problem == IE10 don’t correct the problem

            – Test With BW7.31SP07 IE7 ==>the problem is solved == The BW 7.3 Upgrade solve the issue.

            Thanks for your help,

            Regards

            Sofiane

            (0) 
  35. Gerald Sauerwein

    Hello Marc,

    we are using your IP Upload for years now, it is highly appreciated by our BW colleagues.

    We are currently in the migration towards HANA, our target release is BW 7.31 SP9.

    We faced in application tests this new behaviour: after uploading a file a warning shows up: ‘You are not authorized for this action (unable to generate trace due to missing authorization object, activity)’. Nevertheless, this is classified as warning message (RSTT0 050) and the data is uploaded into BW. Problem: our customers will definitely get irritated on this message and we have to get rid of her. We do not face this problem on our current release BW 7.30 SP3

    The whole thing comes up because the system tries to establish a trace, eventhough it is not necessary. During Debugging we discovered changes in cl_rsbolap_application=>get() method, were this trace is initiated. Assumption is that this behaviour to initiate a trace should be managed through the application i.e. your webdynpro upload app. Is there a way to get rid of this ? It should be the default that there is no demand for tracing.

    Kind regards,

    Gerald Sauerwein

    (0) 
    1. Marc Bernard Post author

      Hello Gerald,

      it’s not an application issue. You can either deactivate the RSTT tracing completely (see SAP Note 1334342) or add authorization for auth.object S_RS_RSTT (RSTTBOBJ = TRACE, ACTVT = 01) to the user profile.

      Regards,
      Marc

      SAP Customer Solution Adoption (CSA)

      (0) 
      1. Gerald Sauerwein

        Hello Marc,

        complete deactivation of RSTT is not an option for us. Adding activity ‘Create (01)’  to the Trace Object S_RS_RSTT in our role concept is a thing our authorization guys don’t like very much – argumentation is that many of our customers are allowed to do an upload but shall not initiate a trace. I personally can understand this very well – traces are initiated in case of failure and not everytime in your normal daily work processing.

        But if there is no other easy option we have to consider this auth. extension. (Enhancement of the RSSM message FM to filter the 050 message would be cracking the nut with the sledgehammer).

        Thanks,

        Gerald.

        (0) 
        1. Marc Bernard Post author

          Hi Gerald,

          adding the authorization does not trigger the recording of traces. A trace will only be recorded if tracing is turned on in transaction RSTT and end users typically do not have access to that.

          Regards,
          Marc
          SAP Customer Solution Adoption (CSA)

          (0) 
          1. Former Member

            Hi Marc,

            Your solution for IP flatfile upload is groovy. I’m using it now for 4 years and no problems. But now i’ve a new requirement to upload data with filter options. The filter doesn’t allow me to select a multiple selection variable or interval. Only Single option is possible. I just saw on your post that you’ve fixed this issue but i can’t find the variable solution in your last 2.4 package.

            “The second enhancement is around the variable selections for the upload. The first version was limited to only single value variables. Now full selection options are available! The following types of characteristic variables are supported: single values, multiple values, intervals, and complex selection options.”

            Please advise!

            best regards,

            Coussary

            (0) 
    1. Marc Bernard Post author

      Hello Warwick,

      I’m not sure what you are looking for. BW-IP is part of any SAP NetWeaver BW system and the file upload is a transport that needs to be installed in this system. The transport file is included together with the documentation in a ZIP file which you can find linked in the blog above.

      Regards,
      Marc

      SAP Customer Solution Adoption (CSA)

      (0) 
      1. Former Member

        Hi Marc,

        Is it possible to also add transports for NW 7.30/7.31? It is sometimes challenging to convince customers to import transports from a prior release.

        Thanks,

        John

        (0) 
  36. Former Member

    Hi Marc,

    We are in the process of upgrading to BW 7.4 and in the upgrade dev/qa systems we run into issues with the IP file upload program/dynpro ZRSPLF_FILE_UPLOAD/DOWNLOAD. This is due to the fact that structure RSRRANGEEXT, which is used in method onaction_upload (and probably others aswell), has changed. Members of this structure have changed from CHAR60 to SSTRING1333, causing the ABAP program to fail: “LOW_EXT” must be a character-type field (data type C, N, D or T).RSRRANGEEXT.jpg

    As the dynpro is ‘last changed by’ BERNARDMA, I’m hoping you can shed a light on this issue. Has this been tested in the conversion to 7.4, and is there a coding fix, or do we have hack the coding ourselves?

    Thanks in advance,

    Eduard

    (0) 
    1. Marc Bernard Post author

      Hello Eduard,

      i have a new version that is compatible with 7.4. It needs some testing before I will release it on SCN. I will send it to you via email.

      Regards,
      Marc

      SAP Strategic Customer Engagements (SCE)

      (0) 
      1. Former Member

        Good Day Marc

        We are in the process of upgrading from BW 7.0 to 7.4 and also require the 7.4 compatible version of ZRSPLF_FILE_UPLOAD and ZRSPLF_FILE_DOWNLOAD webdynpro.

        If you can please advise.

        Regards,

        Gavin Wiggill

        (0) 
  37. Daniel Tig

    Hi Marc,

    thank you for the great tool!!!

    please help me with following situation – if I want to upload a new file after I save an uploaded file or undo it, the system crashes with REBAX_STATE error. I have noticed that after save/undo, the data locked is not released (the release happends anyway if the webdynpro is restarted), but i’m not sure if this is the cause of the error.

      

    Error while processing your query

    What has happened?

    The URL call http://xxxxxx:8000/sap/bc/webdynpro/sap/zrsplf_file_upload was terminated because of an error.

     
    Note

    • The following error occurred in system BE1 : An exception occurred that was not caught.
    • The error occurred on application server xxx_BE1_00 and in work process. 1
    • The termination type was: RABAX_STATE
    • The ABAP call stack was:
      Function: RRMS_X_MESSAGE of program SAPLRRMS
      Method: X_MESSAGE of program CL_RS_BASE====================CP
      Method: _DEQUEUE of program CL_RSR_OLAP_AREA==============CP
      Method: RELEASE_BUFFER of program CL_RSR_OLAP_AREA==============CP
      Method: RELEASE_PLAN_BUFFER of program CL_RSR_OLAP_AREA==============CP
      Method: ENQUEUE_SELECTION of program CL_RSPLFR_CONTROLLER==========CP
      Method: EXECUTE_PLSQ of program CL_RSPLFR_CONTROLLER==========CP
      Function: RSPLSSE_PLSEQ_EXECUTE of program SAPLRSPLSSE
      Method: ONACTIONON_UPLOAD of program /1BCWDY/VSFOJ847F0RT8BI27GVM==CP
      Method: IF_WDR_VIEW_DELEGATE~WD_INVOKE_EVENT_HANDLER of program /1BCWDY/VSFOJ847F0RT8BI27GVM==CP
     
       

    What can I do?

    • If the termination type was RABAX_STATE, you will find more information on the cause of termination in system BE1 in transaction ST22.
    • If the termination type was ABORT_MESSAGE_STATE, you will find more information on the cause of termination on the application server xxx_BE1_00 in transaction SM21.
    • If the termination type was ERROR_MESSAGE_STATE, you can search for further information in the trace file for the work process 1 in transaction ST11 on the application server xxx_BE1_00 . You may also need to analyze the trace files of other work processes.
    • If you do not yet have a user ID, contact your system adminmistrator.

    Error Code: ICF-IE-http -c: 100 -u: xxx-l: E -s: BE1 -i: xxx_BE1_00 -w: 1 -d: 20140305 -t: 094210 -v: RABAX_STATE -e: UNCAUGHT_EXCEPTION -X: 5316148FD4110D90E10080000A013315_52D9A1E214B02BF0E10080000A013315_1 -x: 53161495D4110D90E10080000A013315

    HTTP 500 – Internal Server Error

    Your SAP Internet Communication Framework Team

    (0) 
  38. Alfonso Gonzalez Sagarra

    Hello Marc,

    First of all thanks a lot for this wonderfull development, it helps us a lot for our planning application development.

    Currently we are in a BW upgrade process from 7.01 SP07 to BW 7.31 SP10. Unfortunatelly in version 7.31 SP10 the upload does not work since we are having an issue in the planning fucntiondefinition since it seems to not recognize the FILE FORMAT parameters.

    Let me show you:

    The planning function type is defines as:

    function type.JPG
    When we go to the planning function we get the following warning messages:planning function 1JPG.JPG

    and then we don’t see the values in the FILE FORMAT parameter in display mode but when we click to edit mode we see them, but if we click on EDIT button the system does not do anything:

    planning function 2JPG.JPG

    If after that, try to save, then I get the following errors:

    Sorry for the long message, I hope you or someone else might help us with this issue.

    planning function 3.JPG

    Best regards,

    Alfonso.

    (0) 
    1. Marc Bernard Post author

      Hello Alfonso,

      the planning function type is not configured correctly. File format must be type “Elementary” and refer to InfoObject 0TCTIOBJNM.

      /wp-content/uploads/2014/04/function_422989.gif

      Regards,
      Marc

      SAP Strategic Customer Engagements (SCE)

      (0) 
      1. Alfonso Gonzalez Sagarra

        Dear  Marc,

        Thank you so much for your quick reply; it has help us to spot that the version we were using of the functions were old, so we have reimported your transport and everything works as expected.

        Best regards,

        Alfonso.

        (0) 
  39. Former Member

    Hello Marc,

    we are using your great tool for years now. But now we face the upgrade to 7.4.

    Is the 7.4-ready-version available by now?

    Best regards,

    Michael

    (0) 
    1. Marc Bernard Post author

      Hello Michael,

      yes, it’s available. Please send me an email.

      Regards,
      Marc

      SAP Strategic Customer Engagements (SCE)

      (0) 
  40. Former Member

    Hi Marc,

    we are using your the tool as well and we are going to upgrade to 7.4 also.

    Can you send me 7.4-ready-version too?

    Best regards,

    Sascha

    (0) 
      1. Derek Fox

        Hi Marc

        I see a number of people are requesting the NW 7.4 version of the file, is it possible to place this on SCN where we can download it instead of everyone sending you an email?

        Regards

        Derek

        (0) 
        1. Marc Bernard Post author

          Hi Derek,

          the version that is compatible wih 7.4 has many new features compared to the version published here. I will publish it on SCN as soon as I have enough testing feedback. Until then, please request it from me so I can be in touch directly.

          Regards,
          Marc

          SAP Strategic Customer Engagements (SCE)

          (0) 
          1. Derek Fox

            Hi Marc

            Thank for the feedback, we would like to participate in testing the new version as we have recently upgraded our test BW 7.3 system to BW 7.4 SP5 (currently busy with the SP6 & SP7 support packages as well) and busy validating the upgraded system and one of the components is BW-IP where we have certain developments that relies on the loading of data via files.

            I have enabled my email address to be visible on my profile on SCN.

            Regards

            Derek

            (0) 
  41. Former Member

    Hi  Marc Bernard,

    please help me regarding flat file upload in Design Studio,

    we are using planning functions and custom functions after flat file uploaded in Design Studio.

    please let me known  any further information is needed from me.

     

    Regards

    sanjeeve.G

    (0) 
  42. Former Member

    Hi  Marc Bernard,

     

    I experimented  on Design studio for  flat file upload,  but unable to upload the flat file.

     

    will it  is possible for uploading flat file In the design studio ?, I hope Design studio can’t support flat

    file upload.

     

    This is humble request from me.

     

    Regards

    sanjeeve.G

     

     

     

     

     

     

     

     

     

    (0) 
  43. Petronilla Porru

    Hi Marc,

    I am working in BPC optimized, I have build all PF and PS to load flat file and it is working from RSPLAN, but I’d like to call from web page. I don’t know why but the webservice zrsplf_file_upload_v3 is not available in the system.

    I found your guide BI-IP File Upload – Create HTTP Service but it is for ZRSPLF_FILE_UPLOAD_ICF

    Do you have same for zrsplf_file_upload_v3? Or any suggestion on how to adjust it?

    Many thanks and Regards

    Nilla

     

    (0) 
    1. Marc Bernard Post author

      Hi Nilla,

      I have not tested it with BPC optimized. The ICF services correspond to the Web Dynpro applications. Go to SE80, look for file upload Web Dynpro application(s) and activate them again. That should create the ICF services. If not, please create an incident report.

      Best,
      Marc
      SAP HANA Competence Center

      (0) 
      1. Petronilla Porru

        Hi Marc,

        which class I need to search in SE80?

        because if I search in both SICF and SE80 for zrsplf_file_upload_v3 or zrsplf_file_upload they are not available.

        From RSPLAN I can confirm that the uplaoad is working fine 🙂

        Thanks, Best Regards

        Nilla

        (0) 

Leave a Reply