Translation Management Tool (BI 4.0) fails to import Crystal Reports

I am trying to use the Translation Management Tool on Crystal Reports in our CMS Repository. When I try to import the reports the Import Status indicates a Fail but does not give an error message. When I click on the failed item the tool displays com.businessobjects.sdk.oca2.translation.internal.TranslationServiceException in red in the bottom of the window.
Can anyone help with why I cannot import these reports?
-Byron Clairoux
Treasury Board Secretariat

It is good to have what I suspected was happening confirmed, and that it is at least noted in the documentation. A less cryptic error message would be helpful - something clearer than the current "com.businessobjects.sdk.oca2.translation.internal.TranslationServiceException" message that is displayed if you try and import a CR 2011/2013 report.
Thanks for the responses
-Byron

Similar Messages

  • Translation Management Tool FWM 01014

    We are currently using SAP BusinessObjects BI Platform 4.1 SP5.
    The Translation Management Tool is currently giving us the following error when attempting to import a folder from the System Repository:
    org.apache.axis2.AxisFault: Unable to find servers in CMS <[email protected]>:6400 ... All such servers could be down or disabled by the administrator (FWM 01014).
    As mentioned in the SAP Knowledge Base Article 1974085 the two listed causes are:
    1. There is no available Translation Manager Service in one of the Adaptive Processing Servers
    2. Request Port for the CMS is not opened in the users firewall
    When viewing the services in the APS on the CMC it does show a Translation Service but there are no configuration options for it. As well, there is currently no firewall set up either on the server or the client machine.
    Does anyone know a solution?
    Thanks.

    Hi,
    1)Ping the Server machine with IP address and host name from the client machine. Ping the client machine with IP address and host name from the server machine.
    2)If you are facing any issue then try making the host file entry on the server machine and client machine as below
    <IP Address> <Hostname> <FQDN> (OF Server)
    <IP Address> <Hostname> <FQDN> (OF Client)
    Both the above entries to be made on the Server and client machine.
    Regards,
    ~Shree

  • SAP BO Translation Management Tool

    Hi,
    I am using the SAP BO Translation Management Tool to translate our WEBI reports into French language. Most of the queries are getting translated properly and after the export to the server they are available in French language.
    But I am having issues with two of those reports in which even on successfully translating the variables and exporting the same to the server the translation is not available. On opening the WEBI report again in TMT it shows that none of the variables were translated and this problem is only with the variables not with query names or prompts.
    Any kind of help would be great.
    Regards,
    Arminder Singh

    Hi,
    Follow this
    1888952 - Translations not retained for user variables when translating to multiple languages in Translation Management Tool.

  • Adobe Extension Manager CS5 - Adobe InDesign extensions failed to import on Mac OSX 10.9.3

    Purchased a new MacBook Pro in January and just now trying to load my copy of Adobe CS5 onto it. Everything installed okay, but when I launch Adobe Extension Manager I get an error message saying that certain extensions failed to import and to make sure they are valid extensions.
    I tried to install a 3rd party extension that I use and it will not import either. Not sure if this is a software or hardware issue.
    Error message reads as follows:
    The following extensions 'idcs5_AssetPubLibrary.zxp,idcs5_AssignmentUI.zxp,idcs5_Assignments.zxp,idcs5_AWS.zxp,idc s5_AWSUI.zxp,idcs5_BasicTools.zxp,idcs5_Book Panel.zxp,....' for product 'InDesign CS5' failed to be imported. Please make sure these are valid extensions.
    I tried to update the extension manager to version 5.0.3 and that did not work. I tried uninstalling the entire suite and reinstalling and same results.
    Any help would be greatly appreciated.

    My guess is that you're trying to use the Migrate feature from OSX. Unfortunately, this will not work reliably with Adobe Creative Suite/Creative Cloud applications.
    You'll need to run the Adobe Cleaner tool to delete all Adobe stuff you copied over:
    Use the CC Cleaner Tool to solve installation ... - Adobe
    Then you'll have to install  CS5 from your original discs or a backup of your original install files.
    Lacking that, you can download CS5 from this link:
    Download and Installation Help

  • Action failed after start Crystal report add-on then Account Setup

    Dear All,
    We got an error message on a work station when start Crystal report add-on >> Go Account Setup >> type in sa password >> Action failed
    Then I tried on the server. It used to work before. I type in the same password, the error message said 'login failed...'
    The password is correct. I can login by using management studio.
    Then I changed the password of sa user in management studio. On the server, after I changed password in Account Setup, it works. But on the workstation, I still have the same error message Action failed.
    They are on SAP2007A PL06HF01, SQL2008, the OS of the workstation is Windows Vista business
    Any idea? Thanks a lot.
    Regards,
    Yuka

    Hi Yuka,
    I moved your post to the Integration Kit forum.
    Also be aware that CR 2008 supports MS SQL Server 2008 with Fix Pack 2.3 installed. MS also only supports MS SQL Server with their new Client. Go to the install CD for SQL Server and instlal the client Tools which installs a new driver.
    Need to know what version of CR you are using?
    Thank you
    Don
    Edited by: Don Williams on Feb 22, 2010 6:50 AM

  • The Report Server Failed Error in Crystal Report

    Dear All,
    I converted one PLD to Crystal Report using the Crystal Converter tool in SAP B1 8.81 Pl00. However, when I try to preview the Crystal Report, I am getting an error "The Report Server Failed" and then SAP hangs.
    Any known solution for this?
    Thanks and regards,
    Bharath S

    Dear Bharath,
    Your PL is too low. Upgrade to the latest PL will solve this problem.
    Thanks,
    Gordon

  • Logon Failed when exporting crystal report to PDF

    Hi, I am Teguh
    i want to ask about error when export crystal report to pdf
    error message
    CrystalDecisions.CrystalReports.Engine.LogOnException: Logon failed
    [LogOnException: Logon failed.]
       .I(String , EngineExceptionErrorID ) +506
       .D(Int16 , Int32 ) +537
       .C(Int16 ) +10
       CrystalDecisions.CrystalReports.Engine.FormatEngine.ExportToStream(ExportRequestContext reqContext) +577
       CrystalDecisions.CrystalReports.Engine.ReportDocument.ExportToStream(ExportFormatType formatType) +141
       Falcon.CRTransferSlip.Page_Load(Object sender, EventArgs e) in C:\inetpub\wwwroot\Falcon\CRTransferSlip.aspx.vb:77
       System.Web.UI.Control.OnLoad(EventArgs e) +67
       System.Web.UI.Control.LoadRecursive() +35
       System.Web.UI.Page.ProcessRequestMain() +750
    environment:
    OS : Windows server 2008 standard SP1
    IIS: Version 7.0
    SQL: Sql server 2000
    VS : Visual studio 2003
    i really confused with this error,
    please help me for this problem
    many thank's

    Hi Ludek
    Thank you for your response. I have installed SP3 and ProcMon and still the same result.
    I applied a filter on ProcMon to filter out items where the path contains 'export'.
    There are a few items where the result is 'NAME NOT FOUND' but I don't think it necessarly had anything to do with the barcode. These include items such as 'EXPORT\MailDestType','EXPORT\DisableExportLiveOfficeSupport'','EXPORT\ExportDirectory' to name a few.
    What drew my attention was the ACCESS DENIED result on specifically the EXPORT\PDF folders. The detail for these are  Desired Access : All access, however the very same entry appears a little futher on as a SUCCESS but this is detailed as Desired Access: Query Value.
    So in summary it looks something like this:
    User : Server\XXX
    Operation : RegOpenKey
    Path : HKU\.DEFAULT\Software\Business Objects\Suite 12.0\Crystal Reports\Export\Pdf
    Result : ACCESS DENIED
    Desired Access : All Access
    User : Server\XXX
    Operation : RegOpenKey
    Path : HKU\.DEFAULT\Software\Business Objects\Suite 12.0\Crystal Reports\Export\Pdf
    Result : SUCCESS
    Desired Access : Query Value
    There are a few other entries that follow this pattern that exists in other locations such as HKLM\Software...
    Could this 'ACCESS DENIED' be the problem? and If so how do I, and should I give user XXX this ALL Access its looking for.
    Regards
    Elroy

  • Logon Failed Error in Crystal Reports

    Hiii Experts, 
                    We are facing one error while working on crystal reports 2008 and SAP Version 8.8-PL18 and SAP 8.81-PL 9
    "Logon Failed"  Error comes  even when we add all connection details correctly in connection details window, sometimes it comes some time not.
              We face this error when,
    1) When verifying the database in Crystal reports.
    2)When we are saving any particular report in sap B1.
    3)It comes when we try to set the database Location in Crystal Reports.
    4)Also,when we are trying to view preview of report.
                    This problem is too much time consuming and irregular. We are not able to find exact cause. Please, help  us.
    Edited by: suhas.patil on Jan 24, 2012 3:54 PM

    Hi Suhas,
    when making a test, its always a good practice to test in the same PL, or in a Higher PL.
    anyways, you need to update your Datasource, from your CR IDE goto Database -->> Set Datasource Location. then use either of the 2
    1. OLE DB (ADO) - Driver (SQL Server Native Client 10.0)
    2. SAP Business One
    and update your datasource accordingly.
    rergards,
    Fidel

  • Failed to schedule crystal report

    Hi,
    We are using BO XI R3.1 and I am trying to schedule a crystal report in CMC in pdf format which contains parameters. After the schedule the error message am getting was Error in File ~tmp29bc61e513637d0.rpt: Failed to retrieve data from the database. Details: [Database Vendor Code: 2812 ]
    I've also checked if there is an issue with servers and all of them are running.
    However when i try to view the report manually by giving the parameters it ran fine and i was able to see the report.
    Could any one please advise me what could be the issue i really appreciate your help on this regard.
    Thanks,
    Eswar

    Well exporting a report from the viewer to pdf and scheduling to pdf both use the same conversion driver.  I can't say I've ever seen a difference in formatting when scheduling vs exporting from InfoView after a view.  Is it possible you are comparing the results from the CR designer and exporting to pdf vs scheduling to pdf?
    Do this:
    1.) open the report in the CR Designer on the server machine. Refresh it and export to pdf and save the file.
    2.) open the same report you published to the CMS and view from InfoView.  Refresh it and make sure to use the same exact parameter values you did in #1.  Export to pdf and save the document with a different name.
    3.) schedule the same report to pdf & unmanaged disk destination using the same parameter values in #1. 
    Compare all 3 files.  Are they still different? They should all be identical reports assuming the data on the db side didn't change between refreshes.  Using the same parameter values is important because this can change the data as well as the formatting you've designed the report with.  If you're still getting blank pages or the output files are different in any way, you'll probably want to open a support ticket.   Someone in support can help you compare files, formatting and the make sure the version you are using doesn't have a regression.

  • How to Extract data from a Request management tool to Apex to avoid working on Excel reports

    Client uses a ticketing tool,I donot know what is the database for the tool,but I would like to know the best way to extract data from the tool to pex so that we can eliminate working on Excel reports.These excel reports are basically the open request log,resolved tickets,aging tickets etc,currently we work on many excel reports,can we achieve this in Apex ,if so how do we achieve this.Then we would like to use this report and prepare multiple charts,how the above two requirements can be mapped.

    A very important function for the system will be - one sends an email in certain format to a dummy email address, then some data will be extracted from the email based on the pre-defined format and inserted into the database my APEX application is using.
    Any idea on how I can make it happen please? I agree that this is not really an Apex question, but a more general PL/SQL question.
    There are many approaches, all boiling down to one of these two:
    1) Push: Some process in the mail server sends/forwards information to your database when new mail arrives.
    The language/tools used to do this, and the way it would connect to your database, depends on your environment (what is your operating system? mail server? existing middleware/tools? security protocols used? etc.).
    2) Pull: Some process in the database contacts the mail server and polls for new information.
    Ie. some PL/SQL code would communicate with the mail server. Again, it depends on your environment (what is your operating system? mail server? existing middleware/tools? security protocols used? etc.).
    For example, if you are using Exchange 2007 or newer, it has a web services API:
    http://msdn.microsoft.com/en-us/library/dd877045.aspx
    The challenge here will be to build the correct SOAP requests from PL/SQL, and to handle the security protocols used.
    - Morten
    http://ora-00001.blogspot.com

  • [BO 4.0 Client Tools] Problems with using Translation Manager

    I have Installed SAP BO 4.0 with SP 2 on a Windows 2008 R2 Server with a MS SQL Server 2008 R2 as repository Server.
    I have patched the Server with the SP4 for BO. I have installed the Client tools with the same Patchlevel (SP 4) on the same Server.
    The Java - Installation is the Installation from SAP BO 4.0
    Now I try to use the "Translation Management Tool"
    Login with a BO - Administrator and Enterprise authentification.
    Next Step ist to load an object from the repository.
    This ends with an error Message: java.lang.Exception: initInstance failed. -2
    And now? I have no idea.
    Who can Help?
    Ralph

    Hello Mister Makmerphy,
    it seems, that the higher memory limit solved the problem.
    I made it in some steps and now I have a memory limit with 3 Gbyte.
    And with a last step I've added the last 4 parameters.
    But now I have the Problem:
    "This server is considered failed because it has stopped 5 time(s) in 60 minute(s)."
    And the actuall status is "failed"
    Where can I reset this counter.
    Waiting another hour to restart doesn't help
    System Reboot doesn't help.
    Where can I reset this counter or this timer.
    Ralph

  • SQL Server 2008 R2 Management Studio (express) install fails (Management Tools Basic Failed) - Error 1316. The Specific account already exists.

    Hi,
    I try to install, the SQL Express 2008 R2 with Advanced 
    The installation has only one error  (Error 1316. The Specific account already exists.) and the Management Tools Basic setup is failed.
    Overall summary:
      Final result:                  SQL Server installation failed. To continue, investigate the 
    reason for the failure, correct the problem, uninstall SQL Server, and then rerun SQL Server 
    Setup.
      Exit code (Decimal):           -2068052700
      Exit facility code:            1212
      Exit error code:               1316
      Exit message:                  SQL Server installation failed. To continue, investigate the 
    reason for the failure, correct the problem, uninstall SQL Server, and then rerun SQL Server 
    Setup.
      Start time:                    2015-01-02 16:17:17
      End time:                      2015-01-02 16:24:01
      Requested action:              Install
      Log with failure:              C:\Program Files\Microsoft SQL Server\100\Setup Bootstrap
    \Log\20150102_161500\SSCRuntime_Cpu32_1.log
      Exception help link:           http://go.microsoft.com/fwlink?
    LinkId=20476&ProdName=Microsoft+SQL+Server&EvtSrc=setup.rll&EvtID=50000&ProdVer=10.50.4000.0
    Machine Properties:
      Machine name:                  KHPNHSI_BNANG
      Machine processor count:       4
      OS version:                    Windows 7
      OS service pack:               Service Pack 1
      OS region:                     United States
      OS language:                   English (United States)
      OS architecture:               x64
      Process architecture:          64 Bit
      OS clustered:                  No
    Product features discovered:
      Product              Instance             Instance ID                    Feature             
                         Language             Edition              Version         Clustered 
    Package properties:
      Description:                   SQL Server Database Services 2008 R2
      ProductName:                   SQL Server 2008 R2
      Type:                          RTM
      Version:                       10
      Installation location:         g:\41bee43707e62fab54ec\x64\setup\
      Installation edition:          EXPRESS_ADVANCED
      Slipstream:                    True
      SP Level                       2
    User Input Settings:
      ACTION:                        Install
      ADDCURRENTUSERASSQLADMIN:      True
      AGTSVCACCOUNT:                 NT AUTHORITY\NETWORK SERVICE
      AGTSVCPASSWORD:                *****
      AGTSVCSTARTUPTYPE:             Disabled
      ASBACKUPDIR:                   Backup
      ASCOLLATION:                   Latin1_General_CI_AS
      ASCONFIGDIR:                   Config
      ASDATADIR:                     Data
      ASDOMAINGROUP:                 <empty>
      ASLOGDIR:                      Log
      ASPROVIDERMSOLAP:              1
      ASSVCACCOUNT:                  <empty>
      ASSVCPASSWORD:                 *****
      ASSVCSTARTUPTYPE:              Automatic
      ASSYSADMINACCOUNTS:            <empty>
      ASTEMPDIR:                     Temp
      BROWSERSVCSTARTUPTYPE:         Disabled
      CONFIGURATIONFILE:             
      CUSOURCE:                      
      ENABLERANU:                    True
      ENU:                           True
      ERRORREPORTING:                False
      FARMACCOUNT:                   <empty>
      FARMADMINPORT:                 0
      FARMPASSWORD:                  *****
      FEATURES:                      SQLENGINE,REPLICATION,SSMS,SNAC_SDK
      FILESTREAMLEVEL:               0
      FILESTREAMSHARENAME:           <empty>
      FTSVCACCOUNT:                  <empty>
      FTSVCPASSWORD:                 *****
      HELP:                          False
      INDICATEPROGRESS:              False
      INSTALLSHAREDDIR:              C:\Program Files\Microsoft SQL Server\
      INSTALLSHAREDWOWDIR:           C:\Program Files (x86)\Microsoft SQL Server\
      INSTALLSQLDATADIR:             <empty>
      INSTANCEDIR:                   C:\Program Files\Microsoft SQL Server\
      INSTANCEID:                    SQLExpress
      INSTANCENAME:                  SQLEXPRESS
      ISSVCACCOUNT:                  NT AUTHORITY\NetworkService
      ISSVCPASSWORD:                 *****
      ISSVCSTARTUPTYPE:              Automatic
      NPENABLED:                     0
      PASSPHRASE:                    *****
      PCUSOURCE:                     g:\41bee43707e62fab54ec\PCUSOURCE
      PID:                           *****
      QUIET:                         False
      QUIETSIMPLE:                   False
      ROLE:                          AllFeatures_WithDefaults
      RSINSTALLMODE:                 FilesOnlyMode
      RSSVCACCOUNT:                  NT AUTHORITY\NETWORK SERVICE
      RSSVCPASSWORD:                 *****
      RSSVCSTARTUPTYPE:              Automatic
      SAPWD:                         *****
      SECURITYMODE:                  SQL
      SQLBACKUPDIR:                  <empty>
      SQLCOLLATION:                  SQL_Latin1_General_CP1_CI_AS
      SQLSVCACCOUNT:                 NT AUTHORITY\NETWORK SERVICE
      SQLSVCPASSWORD:                *****
      SQLSVCSTARTUPTYPE:             Automatic
      SQLSYSADMINACCOUNTS:           PSI\ssamnang
      SQLTEMPDBDIR:                  <empty>
      SQLTEMPDBLOGDIR:               <empty>
      SQLUSERDBDIR:                  <empty>
      SQLUSERDBLOGDIR:               <empty>
      SQMREPORTING:                  False
      TCPENABLED:                    0
      UIMODE:                        AutoAdvance
      X86:                           False
      Configuration file:            C:\Program Files\Microsoft SQL Server\100\Setup Bootstrap
    \Log\20150102_161500\ConfigurationFile.ini
    Detailed results:
      Feature:                       Database Engine Services
      Status:                        Passed
      MSI status:                    Passed
      Configuration status:          Passed
      Feature:                       SQL Client Connectivity SDK
      Status:                        Passed
      MSI status:                    Passed
      Configuration status:          Passed
      Feature:                       SQL Server Replication
      Status:                        Passed
      MSI status:                    Passed
      Configuration status:          Passed
      Feature:                       Management Tools - Basic
      Status:                        Failed: see logs for details
      MSI status:                    Passed
      Configuration status:          Passed
    Rules with failures:
    Global rules:
    Scenario specific rules:
    Rules report file:               C:\Program Files\Microsoft SQL Server\100\Setup Bootstrap
    \Log\20150102_161500\SystemConfigurationCheck_Report.htm
    Please help!
    Samnang.

    Hi SSamnang,
    According to your description, you come across the error that the specific account already exists. Please help to share the complete error log in C:\Program Files\Microsoft SQL Server\100\Setup Bootstrap\Log\20150102_161500\SSCRuntime_Cpu32_1.log. You could
    use google drive to upload the error log following the steps in the article:
    https://support.google.com/drive/answer/2424368?hl=en
    From the exception help link, we notice that, the issue could be due to that an attempt fails to install SQL Server Native Client on a computer where SQL Server Native Client is already installed.
    I recommend you to check if there is already an existing SQL Server Native Client on your computer. If there is an existing one, you could uninstall it and install SQL Server again.
    In addition, there is a similar thread for reference:
    https://social.technet.microsoft.com/Forums/en-US/dc31bffd-c9e2-4630-b5d7-9252b03c24fe/sql-2008-r2-management-tools-install-fails-the-specified-account-already-exists?forum=sqltools.
    Regards,
    Michelle Li

  • BPC Mass User Management Tool error in BPC 10

    Hello,
    I've downloaded tranport files from How to use BPC Mass User Management Tool in Netweaver. But Transport import fails with RC12 without any shortdump. ABAP program ZUJE_MASS_USER_MGMT is not created.
    Version used - BPC 10 CPMBPC 801 on Netweaver 7.4 .
    Thanks in advance for your inputs.

    Tried changing transport options but no luck. Transport failed with status RC12 without creating ABAP program. However, Old version transport files imported with error. But I could not find METHOD check_bpc_component_is_valid.
    Can anyone please send the updated program.
    *& Report  ZUJE_MASS_USER_MGMT
    *& Created By: Rich Heilman  SAP Labs, LLC
    *& Created On: 08/2/2010
    REPORT  zuje_mass_user_mgmt.
    TYPE-POOLS: abap, vrm.
    *       CLASS lcl_application DEFINITION
    CLASS lcl_application DEFINITION FINAL.
      PUBLIC SECTION.
        CONSTANTS: lc_comma TYPE char01 VALUE ',',
                   lc_pipe TYPE char01 VALUE '|',
                   lc_tab TYPE char10 VALUE 'TAB'.
        TYPES: BEGIN OF t_appldim,
                appl_id TYPE uj_appl_id,
                dimension TYPE uj_dim_name,
              END OF t_appldim.
        TYPES: BEGIN OF t_appldimmembers,
                appl_id TYPE uj_appl_id,
                dimension TYPE uj_dim_name,
                member TYPE uj_dim_member,
              END OF t_appldimmembers.
        CLASS-METHODS: file_f4 RETURNING value(r_file) TYPE string,
                       directory_f4 RETURNING value(r_path) TYPE string,
                       get_initial_directory RETURNING value(r_path) TYPE string,
                       set_delimiter_listbox,
                       set_delimiter,
                       export_users_to_file,
                       import_users_from_file,
                       export_teams_to_file,
                       import_teams_from_file,
                       export_team_assign_to_file,
                       import_team_assign_from_file,
                       export_task_profiles_to_file,
                       import_task_profiles_from_file,
                       export_mem_profiles_to_file,
                       import_mem_profiles_from_file,
                       export_tap_assign_to_file,
                       import_tap_assign_from_file,
                       export_map_assign_to_file,
                       import_map_assign_from_file,
                       get_appset_data IMPORTING i_appset_id TYPE uj_appset_id
                                       EXCEPTIONS appset_not_found .
      PRIVATE SECTION.
        CLASS-DATA: lv_appset_id TYPE uja_s_appset_info-appset_id.
        CLASS-DATA: lv_delimiter TYPE string.
        CLASS-DATA: ls_appset_info TYPE uja_s_appset_info.
        CLASS-DATA: lt_appl_info TYPE uja_t_appl_info.
        CLASS-DATA: lt_appl_dim TYPE TABLE OF t_appldim.
        CLASS-DATA: lt_members TYPE TABLE OF t_appldimmembers.
        CLASS-DATA: lt_teams_list TYPE uje_t_team.
        CLASS-DATA: lt_users_list TYPE uje_t_user.
        CLASS-DATA: lt_tprofs TYPE uje_t_api_profile_id.
        CLASS-DATA: lt_mprofs TYPE uje_t_api_profile_id.
        CLASS-DATA: lt_tasks TYPE uje_t_role_tskasg.
        CLASS-DATA: lt_roles TYPE uje_t_role.
        CLASS-DATA: lo_context TYPE REF TO if_uj_context.
        CLASS-DATA: lt_alv_messages TYPE uj0_t_message.
        CLASS-METHODS: set_global_context,
                       render_alv,
                       upload IMPORTING i_filepath TYPE any
                              RETURNING value(rt_strtab) TYPE stringtab,
                       download IMPORTING i_filepath TYPE any
                                         it_datatab TYPE STANDARD TABLE,
                       user_is_valid IMPORTING i_user_id TYPE any
                                     RETURNING value(r_boolean) TYPE abap_bool,
                       team_is_valid IMPORTING i_team_id TYPE any
                                     RETURNING value(r_boolean) TYPE abap_bool,
                       tprofile_is_valid IMPORTING i_profile_id TYPE any
                                         RETURNING value(r_boolean) TYPE abap_bool,
                       mprofile_is_valid IMPORTING i_profile_id TYPE any
                                         RETURNING value(r_boolean) TYPE abap_bool,
                       role_is_valid IMPORTING i_role_id TYPE any
                                     RETURNING value(r_boolean) TYPE abap_bool,
                       task_is_valid IMPORTING i_task_id TYPE any
                                     RETURNING value(r_boolean) TYPE abap_bool.
    ENDCLASS.                    "lcl_application DEFINITION
    SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
    PARAMETERS: p_export RADIOBUTTON GROUP grp1 DEFAULT 'X' USER-COMMAND chk.
    PARAMETERS: p_import RADIOBUTTON GROUP grp1.
    SELECTION-SCREEN END OF BLOCK b1.
    SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-002.
    PARAMETERS: p_appset TYPE uja_appset_info-appset_id.
    PARAMETERS: p_file TYPE string LOWER CASE.
    PARAMETERS: p_delmt TYPE char10 AS LISTBOX VISIBLE LENGTH 20
                           DEFAULT lcl_application=>lc_comma.  "delimiter
    SELECTION-SCREEN END OF BLOCK b2.
    SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE text-003.
    PARAMETERS: p_eusers RADIOBUTTON GROUP grp2 MODIF ID exp.
    PARAMETERS: p_eteams RADIOBUTTON GROUP grp2 MODIF ID exp.
    PARAMETERS: p_eteama RADIOBUTTON GROUP grp2 MODIF ID exp.
    PARAMETERS: p_etprof RADIOBUTTON GROUP grp2 MODIF ID exp.
    PARAMETERS: p_emprof RADIOBUTTON GROUP grp2 MODIF ID exp.
    PARAMETERS: p_etprfa RADIOBUTTON GROUP grp2 MODIF ID exp.
    PARAMETERS: p_emprfa RADIOBUTTON GROUP grp2 MODIF ID exp.
    SELECTION-SCREEN END OF BLOCK b3.
    SELECTION-SCREEN BEGIN OF BLOCK b4 WITH FRAME TITLE text-004.
    PARAMETERS: p_iusers RADIOBUTTON GROUP grp3 MODIF ID imp.
    PARAMETERS: p_iteams RADIOBUTTON GROUP grp3 MODIF ID imp.
    PARAMETERS: p_iteama RADIOBUTTON GROUP grp3 MODIF ID imp.
    PARAMETERS: p_itprof RADIOBUTTON GROUP grp3 MODIF ID imp.
    PARAMETERS: p_improf RADIOBUTTON GROUP grp3 MODIF ID imp.
    PARAMETERS: p_itprfa RADIOBUTTON GROUP grp3 MODIF ID imp.
    PARAMETERS: p_imprfa RADIOBUTTON GROUP grp3 MODIF ID imp.
    SELECTION-SCREEN END OF BLOCK b4.
    INITIALIZATION.
      p_file = lcl_application=>get_initial_directory( ).
      lcl_application=>set_delimiter_listbox( ).
    AT SELECTION-SCREEN OUTPUT.
      LOOP AT SCREEN.
        IF p_export = abap_true AND screen-group1 = 'IMP'.
          screen-active = '0'.
        ENDIF.
        IF p_import = abap_true AND screen-group1 = 'EXP'.
          screen-active = '0'.
        ENDIF.
        MODIFY SCREEN.
      ENDLOOP.
    AT SELECTION-SCREEN.
      CASE abap_true.
        WHEN p_export.
          CLEAR: p_iusers, p_iteams, p_iteama, p_itprof,
                 p_improf, p_itprfa, p_imprfa.
        WHEN p_import.
          CLEAR: p_eusers, p_eteams, p_eteama, p_etprof,
                 p_emprof, p_etprfa, p_emprfa.
      ENDCASE.
      IF sy-ucomm <> 'CHK'.
        IF p_appset IS INITIAL.
          MESSAGE e001(00) WITH 'Please enter an AppSet Id'.
        ENDIF.
        IF p_file IS INITIAL.
          MESSAGE e001(00) WITH 'Please enter a valid directory or file'.
        ENDIF.
        IF p_delmt IS INITIAL.
          MESSAGE e001(00) WITH 'Please specify a delimiter'.
        ENDIF.
      ENDIF.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
      CASE abap_true.
        WHEN p_export.  p_file = lcl_application=>directory_f4( ).
        WHEN p_import.  p_file = lcl_application=>file_f4( ).
      ENDCASE.
    START-OF-SELECTION.
      lcl_application=>set_delimiter( ).
      lcl_application=>get_appset_data(
                  EXPORTING
                       i_appset_id =  p_appset
                  EXCEPTIONS
                       appset_not_found  = 1 ).
      IF sy-subrc <> 0.
        RETURN.
      ENDIF.
      CASE abap_true.
        WHEN p_eusers.  lcl_application=>export_users_to_file( ).
        WHEN p_iusers.  lcl_application=>import_users_from_file( ).
        WHEN p_eteams.  lcl_application=>export_teams_to_file( ).
        WHEN p_iteams.  lcl_application=>import_teams_from_file( ).
        WHEN p_eteama.  lcl_application=>export_team_assign_to_file( ).
        WHEN p_iteama.  lcl_application=>import_team_assign_from_file( ).
        WHEN p_etprof.  lcl_application=>export_task_profiles_to_file( ).
        WHEN p_itprof.  lcl_application=>import_task_profiles_from_file( ).
        WHEN p_emprof.  lcl_application=>export_mem_profiles_to_file( ).
        WHEN p_improf.  lcl_application=>import_mem_profiles_from_file( ).
        WHEN p_etprfa.  lcl_application=>export_tap_assign_to_file( ).
        WHEN p_itprfa.  lcl_application=>import_tap_assign_from_file( ).
        WHEN p_emprfa.  lcl_application=>export_map_assign_to_file( ).
        WHEN p_imprfa.  lcl_application=>import_map_assign_from_file( ).
      ENDCASE.
    *       CLASS lcl_application IMPLEMENTATION
    CLASS lcl_application IMPLEMENTATION.
      METHOD file_f4.
        DATA: lt_file_table TYPE filetable.
        DATA: ls_file_table LIKE LINE OF lt_file_table.
        DATA: lv_rc TYPE sy-subrc.
        cl_gui_frontend_services=>file_open_dialog(
          CHANGING
            file_table = lt_file_table
            rc         = lv_rc ).
        CLEAR ls_file_table .
        READ TABLE lt_file_table INTO ls_file_table INDEX 1.
        IF sy-subrc  = 0.
          r_file = ls_file_table-filename.
        ENDIF.
      ENDMETHOD.                                                "file_f4
      METHOD directory_f4.
        cl_gui_frontend_services=>directory_browse(
            CHANGING
              selected_folder      = r_path
            EXCEPTIONS
              OTHERS               = 4 ).
      ENDMETHOD.                    "directory_f4
      METHOD upload.
        cl_gui_frontend_services=>gui_upload(
              EXPORTING
                filename = i_filepath
              CHANGING
                data_tab = rt_strtab
              EXCEPTIONS
                OTHERS   = 19 ).
        IF sy-subrc <> 0.
          MESSAGE e001(00) WITH 'File not found, check file path and name'.
        ENDIF.
        DELETE rt_strtab WHERE table_line IS INITIAL.
      ENDMETHOD.                    "upload
      METHOD download.
        DATA: lt_datatab TYPE stringtab.
        DATA: ls_datatab LIKE LINE OF lt_datatab.
        FIELD-SYMBOLS: <ls_data> TYPE ANY.
        FIELD-SYMBOLS: <lv_field> TYPE ANY.
    * Convert table to delimited string table
        LOOP AT it_datatab ASSIGNING <ls_data>.
          CLEAR ls_datatab.
          DO.
            ASSIGN COMPONENT sy-index
                             OF STRUCTURE <ls_data> TO <lv_field>.
            IF sy-subrc <> 0.
              EXIT.
            ENDIF.
            IF ls_datatab IS INITIAL.
              ls_datatab = <lv_field>.
            ELSE.
              CONCATENATE ls_datatab <lv_field>
                              INTO ls_datatab SEPARATED BY lcl_application=>lv_delimiter.
            ENDIF.
          ENDDO.
          APPEND ls_datatab TO lt_datatab.
        ENDLOOP.
        cl_gui_frontend_services=>gui_download(
           EXPORTING
             filename = i_filepath
           CHANGING
             data_tab = lt_datatab
           EXCEPTIONS
             OTHERS   = 24 ).
        IF sy-subrc <> 0.
          MESSAGE e001(00)
              WITH 'File not downloaded, check file path and name'.
        ENDIF.
      ENDMETHOD.                    "download
      METHOD get_initial_directory.
        cl_gui_frontend_services=>get_desktop_directory(
          CHANGING
            desktop_directory    = r_path ).
        cl_gui_cfw=>flush( ).
        CONCATENATE r_path '\*.csv' INTO r_path.
      ENDMETHOD.                    "get_initial_directory
      METHOD export_users_to_file.
        TYPES: BEGIN OF t_output,
                user_id TYPE uje_user-user_id,
                fullname TYPE uje_user-fullname,
                email TYPE uje_user-email,
               END OF t_output.
        DATA: lt_user_id TYPE uje_t_api_user_id.
        DATA: lt_users TYPE uje_t_user.
        DATA: ls_users LIKE LINE OF lt_users.
        DATA: lt_output TYPE TABLE OF t_output.
        DATA: ls_output LIKE LINE OF lt_output.
        lcl_application=>set_global_context( ).
        CALL FUNCTION 'UJE_API_GET_LIST_USERS'
          EXPORTING
            i_appset_id = lcl_application=>lv_appset_id
            is_user     = lcl_application=>lo_context->ds_user
            it_user_id  = lt_user_id
          IMPORTING
            et_user     = lt_users.
        REFRESH lt_output.
        LOOP AT lt_users INTO ls_users.
          MOVE-CORRESPONDING ls_users TO ls_output.
          APPEND ls_output TO lt_output.
        ENDLOOP.
    * Download table
        lcl_application=>download( EXPORTING i_filepath = p_file
                                             it_datatab = lt_output ).
      ENDMETHOD.                    "export_users_to_file
      METHOD import_users_from_file.
        DATA: lv_action TYPE uj_action.
        DATA: lv_success TYPE uj_bool.
        DATA: ls_user_info TYPE uje_s_userinfo.
        DATA: lt_messages TYPE uj0_t_message.
        DATA: ls_alv_messages LIKE LINE OF lt_alv_messages.
        DATA: lt_team_asin TYPE uje_t_user_team.
        DATA: lt_tprofiles TYPE uje_t_profile_id_act.
        DATA: lt_mprofiles TYPE uje_t_profile_id_act.
        DATA: lt_strtab TYPE stringtab.
        DATA: ls_strtab LIKE LINE OF lt_strtab.
        lt_strtab = lcl_application=>upload( p_file ).
        LOOP AT lt_strtab INTO ls_strtab.
          SPLIT ls_strtab AT lcl_application=>lv_delimiter INTO ls_user_info-user_id
                                      ls_user_info-fullname
                                      ls_user_info-email.
    * Check if user already exists, and set action accordingly.
          IF lcl_application=>user_is_valid( ls_user_info-user_id ) = abap_false.
            lv_action = 'I'.
          ELSE.
            lv_action = 'M'.
          ENDIF.
          CALL FUNCTION 'UJE_API_MANAGE_USER2'
            EXPORTING
              i_appset_id      = lcl_application=>lv_appset_id
              is_user          = lcl_application=>lo_context->ds_user
              is_user_info     = ls_user_info
              i_action         = lv_action
              it_team_asin     = lt_team_asin
              it_tprofile_id   = lt_tprofiles
              it_mprofile_id   = lt_mprofiles
            IMPORTING
              e_success        = lv_success
              et_message_lines = lt_messages.
          IF lv_success = 'Y'.
            CLEAR ls_alv_messages.
            ls_alv_messages-msgid = '00'.
            ls_alv_messages-msgty = 'S'.
            ls_alv_messages-msgno = '001'.
            CONCATENATE 'User ID' ls_user_info-user_id
                        'has been created/updated successfully'
                                INTO ls_alv_messages-message SEPARATED BY space.
            APPEND ls_alv_messages TO lt_alv_messages.
          ELSE.
            APPEND LINES OF lt_messages TO lt_alv_messages.
            CLEAR ls_alv_messages.
            ls_alv_messages-msgid = '00'.
            ls_alv_messages-msgty = 'E'.
            ls_alv_messages-msgno = '001'.
            CONCATENATE 'User ID' ls_user_info-user_id
                        'not created/updated due to error'
                                 INTO ls_alv_messages-message SEPARATED BY space.
            APPEND ls_alv_messages TO lt_alv_messages.
          ENDIF.
        ENDLOOP.
        lcl_application=>render_alv( ).
      ENDMETHOD.                    "create_users_from_file
      METHOD export_teams_to_file.
        TYPES: BEGIN OF t_output,
                team_id TYPE uje_s_team-team_id,
                description TYPE uje_s_team-description,
               END OF t_output.
        DATA: lt_teams TYPE uje_t_team.
        DATA: ls_teams LIKE LINE OF lt_teams.
        DATA: lt_output TYPE TABLE OF t_output.
        DATA: ls_output LIKE LINE OF lt_output.
        CALL FUNCTION 'UJE_API_GET_TEAMS'
          EXPORTING
            i_appset_id = lcl_application=>lv_appset_id
            is_user     = lcl_application=>lo_context->ds_user
          IMPORTING
            et_team     = lt_teams.
        REFRESH lt_output.
        LOOP AT lt_teams INTO ls_teams.
          MOVE-CORRESPONDING ls_teams TO ls_output.
          APPEND ls_output TO lt_output.
        ENDLOOP.
    * Download table
        lcl_application=>download( EXPORTING i_filepath = p_file
                                             it_datatab = lt_output ).
      ENDMETHOD.                    "export_teams_to_file
      METHOD import_teams_from_file.
        DATA: lv_action TYPE uj_action.
        DATA: lv_success TYPE uj_bool.
        DATA: ls_team TYPE uje_s_team.
        DATA: lt_messages TYPE uj0_t_message.
        DATA: ls_alv_messages LIKE LINE OF lt_alv_messages.
        DATA: lt_users TYPE uje_t_user_team.
        DATA: lt_tprofiles TYPE uje_t_profile_id_act.
        DATA: lt_mprofiles TYPE uje_t_profile_id_act.
        DATA: lt_strtab TYPE stringtab.
        DATA: ls_strtab LIKE LINE OF lt_strtab.
        lt_strtab = lcl_application=>upload( p_file ).
        LOOP AT lt_strtab INTO ls_strtab.
          SPLIT ls_strtab AT lcl_application=>lv_delimiter INTO ls_team-team_id
                                      ls_team-description.
    * Check if team is already a valid team, set action appropriatly
          IF lcl_application=>team_is_valid( ls_team-team_id ) = abap_false.
            lv_action = 'I'.
          ELSE.
            lv_action = 'M'.
          ENDIF.
          CALL FUNCTION 'UJE_API_MANAGE_TEAM2'
            EXPORTING
              i_appset_id      = lcl_application=>lv_appset_id
              is_user          = lcl_application=>lo_context->ds_user
              is_team          = ls_team
              i_action         = lv_action
              it_users         = lt_users
              it_tprofile_id   = lt_tprofiles
              it_mprofile_id   = lt_mprofiles
            IMPORTING
              e_success        = lv_success
              et_message_lines = lt_messages.
          IF lv_success = 'Y'.
            CLEAR ls_alv_messages.
            ls_alv_messages-msgid = '00'.
            ls_alv_messages-msgty = 'S'.
            ls_alv_messages-msgno = '001'.
            CONCATENATE 'Team' ls_team-team_id
                         'has been created/updated successfully'
                             INTO ls_alv_messages-message SEPARATED BY space.
            APPEND ls_alv_messages TO lt_alv_messages.
          ELSE.
            APPEND LINES OF lt_messages TO lt_alv_messages.
            CLEAR ls_alv_messages.
            ls_alv_messages-msgid = '00'.
            ls_alv_messages-msgty = 'E'.
            ls_alv_messages-msgno = '001'.
            CONCATENATE 'Team' ls_team-team_id
                        'not created/updated due to error'
                              INTO ls_alv_messages-message SEPARATED BY space.
            APPEND ls_alv_messages TO lt_alv_messages.
          ENDIF.
        ENDLOOP.
        lcl_application=>render_alv( ).
      ENDMETHOD.                    "create_teams_from_file
      METHOD export_team_assign_to_file.
        TYPES: BEGIN OF t_user_assign,
                user_id TYPE uje_s_user_team-user_id,
                team_id TYPE uje_s_user_team-team_id,
                teamleader TYPE uje_s_user_team-teamleader,
               END OF t_user_assign.
        DATA: lt_user_det TYPE uje_t_user_detail.
        DATA: ls_user_det LIKE LINE OF lt_user_det.
        DATA: ls_user_team TYPE uje_s_user_team.
        DATA: lt_team_assign TYPE TABLE OF t_user_assign.
        DATA: ls_team_assign LIKE LINE OF lt_team_assign.
        CALL FUNCTION 'UJE_API_GET_USERDATA'
          EXPORTING
            i_appset_id = lcl_application=>lv_appset_id
            is_user     = lcl_application=>lo_context->ds_user
          IMPORTING
            et_user     = lt_user_det.
        LOOP AT lt_user_det INTO ls_user_det.
          LOOP AT ls_user_det-t_team_id INTO ls_user_team.
            MOVE-CORRESPONDING ls_user_team TO ls_team_assign.
            APPEND ls_team_assign TO lt_team_assign.
          ENDLOOP.
        ENDLOOP.
    * Download table
        lcl_application=>download( EXPORTING i_filepath = p_file
                                             it_datatab = lt_team_assign ).
      ENDMETHOD.                    "export_team_assign_to_file
      METHOD import_team_assign_from_file.
        TYPES: BEGIN OF t_user_assign,
                user_id TYPE uje_s_user_team-user_id,
                team_id TYPE uje_s_user_team-team_id,
                teamleader TYPE uje_s_user_team-teamleader,
               END OF t_user_assign.
        DATA: lv_success TYPE uj_bool.
        DATA: lt_user_team_temp TYPE uje_t_user_team.
        DATA: ls_user_team_temp TYPE uje_s_user_team.
        DATA: lt_user_team TYPE uje_t_user_team.
        DATA: ls_user_team TYPE uje_s_user_team.
        DATA: ls_team_assign TYPE uje_s_user_team.
        DATA: lt_messages TYPE uj0_t_message.
        DATA: ls_alv_messages LIKE LINE OF lt_alv_messages.
        DATA: lt_tprofiles TYPE uje_t_profile_id_act.
        DATA: ls_tprofiles LIKE LINE OF lt_tprofiles.
        DATA: lt_mprofiles TYPE uje_t_profile_id_act.
        DATA: ls_mprofiles LIKE LINE OF lt_mprofiles.
        DATA: lt_tprofile_ids TYPE uje_t_api_profile_id.
        DATA: ls_tprofile_ids LIKE LINE OF lt_tprofile_ids.
        DATA: lt_mprofile_ids TYPE uje_t_api_profile_id.
        DATA: ls_mprofile_ids LIKE LINE OF lt_mprofile_ids.
        DATA: lt_strtab TYPE stringtab.
        DATA: ls_strtab LIKE LINE OF lt_strtab.
        DATA: ls_teams_list LIKE LINE OF lt_teams_list.
        lt_strtab = lcl_application=>upload( p_file ).
        LOOP AT lt_strtab INTO ls_strtab.
          SPLIT ls_strtab AT lcl_application=>lv_delimiter INTO ls_team_assign-user_id
                                      ls_team_assign-team_id
                                      ls_team_assign-teamleader.
          CLEAR ls_user_team.
          ls_user_team-user_id = ls_team_assign-user_id.
          ls_user_team-team_id = ls_team_assign-team_id.
          ls_user_team-teamleader = ls_team_assign-teamleader.
          TRANSLATE ls_user_team-teamleader USING 'YXyX1XxXN n 0 '. "Translate to X or space
          APPEND ls_user_team TO lt_user_team.
          IF lcl_application=>team_is_valid( ls_team_assign-team_id ) = abap_false.
            CLEAR ls_alv_messages.
            ls_alv_messages-msgid = '00'.
            ls_alv_messages-msgty = 'E'.
            ls_alv_messages-msgno = '001'.
            CONCATENATE 'Team' ls_team_assign-team_id 'does not yet exist.'
                        'No user assigments done.'
                              INTO ls_alv_messages-message SEPARATED BY space.
            APPEND ls_alv_messages TO lt_alv_messages.
            lcl_application=>render_alv( ).
            RETURN.
          ENDIF.
          IF lcl_application=>user_is_valid( ls_team_assign-user_id ) = abap_false.
            CLEAR ls_alv_messages.
            ls_alv_messages-msgid = '00'.
            ls_alv_messages-msgty = 'E'.
            ls_alv_messages-msgno = '001'.
            CONCATENATE 'User' ls_team_assign-user_id 'does not yet exist.'
                        'No user assigments done.'
                              INTO ls_alv_messages-message SEPARATED BY space.
            APPEND ls_alv_messages TO lt_alv_messages.
            lcl_application=>render_alv( ).
            RETURN.
          ENDIF.
        ENDLOOP.
        LOOP AT lcl_application=>lt_teams_list INTO ls_teams_list.
          REFRESH lt_user_team_temp.
          REFRESH lt_tprofile_ids.
          REFRESH lt_mprofile_ids.
    * Check that there is data for team assignment, otherwise skip
          READ TABLE lt_user_team TRANSPORTING NO FIELDS
                            WITH KEY team_id = ls_teams_list-team_id.
          IF sy-subrc <> 0.
            CONTINUE.
          ENDIF.
    * Get existing team data for this team.
          CALL FUNCTION 'UJE_API_GET_TEAMDATA'
            EXPORTING
              i_appset_id    = lcl_application=>lv_appset_id
              is_user        = lcl_application=>lo_context->ds_user
              i_team_id      = ls_teams_list-team_id
            IMPORTING
              et_user_team   = lt_user_team_temp
              et_tprofile_id = lt_tprofile_ids
              et_mprofile_id = lt_mprofile_ids.
    * Update with new users.
          LOOP AT lt_user_team INTO ls_user_team
                           WHERE team_id = ls_teams_list-team_id.
            MOVE-CORRESPONDING ls_user_team TO ls_user_team_temp.
            APPEND ls_user_team_temp TO lt_user_team_temp.
          ENDLOOP.
    * Keep existing profiles.
          REFRESH lt_tprofiles.
          LOOP AT lt_tprofile_ids INTO ls_tprofile_ids.
            ls_tprofiles-profile_id = ls_tprofile_ids-profile_id.
            APPEND ls_tprofiles TO lt_tprofiles.
          ENDLOOP.
          REFRESH lt_mprofiles.
          LOOP AT lt_mprofile_ids INTO ls_mprofile_ids.
            ls_mprofiles-profile_id = ls_mprofile_ids-profile_id.
            APPEND ls_mprofiles TO lt_mprofiles.
          ENDLOOP.
    * now update the user/team assignments
          CALL FUNCTION 'UJE_API_MANAGE_TEAM2'
            EXPORTING
              i_appset_id      = lcl_application=>lv_appset_id
              is_user          = lcl_application=>lo_context->ds_user
              is_team          = ls_teams_list
              i_action         = 'M'
              it_users         = lt_user_team_temp
              it_tprofile_id   = lt_tprofiles
              it_mprofile_id   = lt_mprofiles
            IMPORTING
              e_success        = lv_success
              et_message_lines = lt_messages.
          IF lv_success = 'Y'.
            CLEAR ls_alv_messages.
            ls_alv_messages-msgid = '00'.
            ls_alv_messages-msgty = 'S'.
            ls_alv_messages-msgno = '001'.
            CONCATENATE 'Team' ls_teams_list-team_id 'user assignments'
                        'have been updated successfully'
                             INTO ls_alv_messages-message SEPARATED BY space.
            APPEND ls_alv_messages TO lt_alv_messages.
          ELSE.
            APPEND LINES OF lt_messages TO lt_alv_messages.
            CLEAR ls_alv_messages.
            ls_alv_messages-msgid = '00'.
            ls_alv_messages-msgty = 'E'.
            ls_alv_messages-msgno = '001'.
            CONCATENATE 'Team' ls_teams_list-team_id 'user assignments'
                        'not updated due to error'
                             INTO ls_alv_messages-message SEPARATED BY space.
            APPEND ls_alv_messages TO lt_alv_messages.
          ENDIF.
        ENDLOOP.
        lcl_application=>render_alv( ).
      ENDMETHOD.                    "import_team_assign_from_file
      METHOD export_task_profiles_to_file.
        TYPES: BEGIN OF t_output,
                identifier TYPE char01, " Row Identifer
                profile TYPE uj_profile_id,
                values TYPE string,
               END OF t_output.
        DATA: ls_tprofs LIKE LINE OF lt_tprofs.
        DATA: lv_profile TYPE uj_profile_id.
        DATA: ls_profile TYPE uje_s_profile.
        DATA: lt_role_id TYPE uje_t_api_role_id.
        DATA: ls_role_id LIKE LINE OF lt_role_id.
        DATA: lt_task_info TYPE  uje_t_task_info.
        DATA: ls_task_info LIKE LINE OF lt_task_info.
        DATA: lt_users_asin TYPE uje_t_api_user_id.
        DATA: ls_users_asin LIKE LINE OF lt_users_asin.
        DATA: lt_teams_asin TYPE uje_t_api_team_id.
        DATA: ls_teams_asin LIKE LINE OF lt_teams_asin.
        DATA: lt_output TYPE TABLE OF t_output.
        DATA: ls_output LIKE LINE OF lt_output.
        LOOP AT lcl_application=>lt_tprofs INTO ls_tprofs.
          lv_profile = ls_tprofs-profile_id.
    * Get relevant data for task profile
          CLEAR ls_profile.
          REFRESH: lt_role_id, lt_task_info, lt_users_asin, lt_teams_asin.
          CALL FUNCTION 'UJE_API_GET_TPROFILEDATA2'
            EXPORTING
              i_appset_id  = lcl_application=>lv_appset_id
              is_user      = lcl_application=>lo_context->ds_user
              i_profile_id = lv_profile
            IMPORTING
              es_profile   = ls_profile
              et_role_id   = lt_role_id
              et_task_info = lt_task_info
              et_user_id   = lt_users_asin
              et_team_id   = lt_teams_asin.
    * Write Header row
          CLEAR ls_output.
          ls_output-identifier = 'H'.
          ls_output-profile  = lv_profile.
          ls_output-values = ls_profile-description.
          APPEND ls_output TO lt_output.
    * Write task assigments
          CLEAR ls_output.
          ls_output-identifier = 'K'.
          ls_output-profile  = lv_profile.
          LOOP AT lt_task_info INTO ls_task_info.
            ls_output-values = ls_task_info-task_id.
            APPEND ls_output TO lt_output.
          ENDLOOP.
    * Write role assigments
          CLEAR ls_output.
          ls_output-identifier = 'R'.
          ls_output-profile  = lv_profile.
          LOOP AT lt_role_id INTO ls_role_id.
            ls_output-values = ls_role_id-role_id.
            APPEND ls_output TO lt_output.
          ENDLOOP.
    * Write user assignments
          CLEAR ls_output.
          ls_output-identifier = 'U'.
          ls_output-profile  = lv_profile.
          LOOP AT lt_users_asin INTO ls_users_asin.
            ls_output-values = ls_users_asin-user_id.
            APPEND ls_output TO lt_output.
          ENDLOOP.
    * Write team assignments
          CLEAR ls_output.
          ls_output-identifier = 'T'.
          ls_output-profile  = lv_profile.
          LOOP AT lt_teams_asin INTO ls_teams_asin.
            ls_output-values = ls_teams_asin-team_id.
            APPEND ls_output TO lt_output.
          ENDLOOP.
        ENDLOOP.
    * Download table
        lcl_application=>download( EXPORTING i_filepath = p_file
                                             it_datatab = lt_output ).
      ENDMETHOD.                    "export_task_profiles_to_file
      METHOD import_task_profiles_from_file.
        TYPES: BEGIN OF t_input,
                identifier TYPE char01, " Row Identifer
                profile TYPE uj_profile_id,
                values TYPE string,
               END OF t_input.
        TYPES: BEGIN OF t_task_profile,
                profile TYPE uje_s_profile,
                roles TYPE uje_t_api_role_id,
                task_info TYPE uje_t_task_info,
                users_asin TYPE uje_t_api_user_id,
                teams_asin TYPE uje_t_api_team_id,
               END OF t_task_profile.
        DATA: lt_task_profile TYPE TABLE OF t_task_profile.
        DATA: ls_task_profile LIKE LINE OF lt_task_profile.
        DATA: ls_alv_messages LIKE LINE OF lt_alv_messages.
        DATA: lt_messages TYPE uj0_t_message.
        DATA: lv_action TYPE uj_action.
        DATA: lv_success TYPE uj_bool.
        DATA: lv_last_profile TYPE uj_profile_id.
        DATA: lt_role_id TYPE uje_t_api_role_id.
        DATA: ls_role_id LIKE LINE OF lt_role_id.
        DATA: lt_task_info TYPE  uje_t_task_info.
        DATA: ls_task_info LIKE LINE OF lt_task_info.
        DATA: lt_users_asin TYPE uje_t_api_user_id.
        DATA: ls_users_asin LIKE LINE OF lt_users_asin.
        DATA: lt_teams_asin TYPE uje_t_api_team_id.
        DATA: ls_teams_asin LIKE LINE OF lt_teams_asin.
        DATA: lt_strtab TYPE stringtab.
        DATA: ls_strtab LIKE LINE OF lt_strtab.
        DATA: lt_input TYPE TABLE OF t_input.
        DATA: ls_input LIKE LINE OF lt_input.
        DATA: lt_obj_asin TYPE uje_t_profile_asin.
        DATA: ls_obj_asin LIKE LINE OF lt_obj_asin.
        DATA: lt_task_asin TYPE uje_t_task_id_act.
        DATA: ls_task_asin LIKE LINE OF lt_task_asin.
    * Upload file
        lt_strtab = lcl_application=>upload( p_file ).
    * Rip import file into internal table
        LOOP AT lt_strtab INTO ls_strtab.
          CLEAR ls_input.
          SPLIT ls_strtab AT lcl_application=>lv_delimiter INTO ls_input-identifier
                                      ls_input-profile
                                      ls_input-values.
          APPEND ls_input TO lt_input.
        ENDLOOP.
    * Build profile table containing all associated data
        SORT lt_input STABLE ASCENDING BY profile identifier values.
        LOOP AT lt_input INTO ls_input.
          IF ls_input-profile <> lv_last_profile
              AND lv_last_profile IS NOT INITIAL.
            APPEND ls_task_profile TO lt_task_profile.
            CLEAR ls_task_profile.
          ENDIF.
    * Based on record identifier
          CASE ls_input-identifier.
            WHEN 'H'.  " Header
              ls_task_profile-profile-profile_id  = ls_input-profile.
              ls_task_profile-profile-description = ls_input-values.
            WHEN 'K'.  " Task info
              SPLIT ls_input-values AT lcl_application=>lv_delimiter INTO ls_task_info-task_id
                                                ls_task_info-description.
              IF lcl_application=>task_is_valid( ls_task_info-task_id ) = abap_false.
                CLEAR ls_alv_messages.
                ls_alv_messages-msgid = '00'.
                ls_alv_messages-msgty = 'E'.
                ls_alv_messages-msgno = '001'.
                CONCATENATE 'Task ID' ls_task_info-task_id  'is not valid.'
                            'No task profile updates done.'
                                    INTO ls_alv_messages-message SEPARATED BY space.
                APPEND ls_alv_messages TO lt_alv_messages.
                lcl_application=>render_alv( ).
                RETURN.
              ENDIF.
              APPEND ls_task_info TO ls_task_profile-task_info.
            WHEN 'R'.  " Roles
              ls_role_id = ls_input-values.
              IF lcl_application=>role_is_valid( ls_role_id ) = abap_false.
                CLEAR ls_alv_messages.
                ls_alv_messages-msgid = '00'.
                ls_alv_messages-msgty = 'E'.
                ls_alv_messages-msgno = '001'.
                CONCATENATE 'Role ID' ls_role_id   'is not valid.'
                       

  • Webi/Deski report labels as part of Translation Manager in BOXI 3.1

    Hi,
          I am using Translation manager in BOXI 3.1. I am not able to see the report labels(not universe objects) in the translation manager when I open the report in the translation manager. I can only see the prompts in the translation manager. Is it possible to include labels also in the translation manager so that i can use different labels for different languages. eg:- report title, free cells etc.... 
         If I cannot use report title in the translation manager I will not be able to use same report for different languages as the most visible part of the report will be report title.
    Thanks
    Shameer

    Hi,
    I have the same problem and I've worked a lot to find a solution to that.
    Unfortunately, I guess  "translation manager" (at the moment) can translate just webi prompts and it cannot do anything with labels and webi objects names.
    I hope someone will contraddict me...

  • Not able to see Webi labels in Translation Manager

    Hi,
    I am using Translation manager in BOXI 3.1. I am not able to see the report labels(not universe objects) in the translation manager when I open the report in the translation manager. I can only see the prompts in the translation manager. Is it possible to include labels also in the translation manager so that i can use different labels for different languages. eg:- report title, free cells etc....
    If I cannot use report title in the translation manager I will not be able to use same report for different languages as the most visible part of the report will be report title.
    Thanks
    Shameer

    hi,
    Translation manager detects only Objects/Classes/Prompts/Hierarchies.
    But not Free-standing cells.
    Following is the text copied from SAP Translation Manager User Guide.
    Translation Manager handles:
    u2022 XI 3.0 Universe Designer (unv files): all universe metadata.
    u2022 XI 3.0 Web Intelligence (wid files): document prompts only.
    Regards,
    Vamsee

Maybe you are looking for