UJP_EXCEPTION_050 error in BPC NW 10

Hello,
When running Ownership calculation in BPC Web, the following error message comes up
UJP_EXCEPTION_050 No range round for percentage in method table is generated.
Code = UJP_EXCEPTION_050
Description = No range found for percentage in method table
Enviroment: SAP BPC 10 NW SP03
My configuration:
Methods configuration
101 Holding                  H                              100
100 Global                   G       0.501<,1.00      100
50  Proporcional           P       0.25<,<=0.501   PCTRL
20  Equivalencia           E       0.20<,<=0.25     PCTRL
OwnerShip Manager configuration
Group /Entity       Consolidation Meth       Percent Mth         Percent Ctrl         Percent Ownhershi By group Share Meth
G_FOZ                  Ge  -   Cu            Ge  -   Cu          Ge  -   Cu                   Ge  -   Cu
   E100                 100 - 101             100 - 100           0 -  0                       0 - 0       
   E200                 100 - 100             0 - 100             0 -  0                       0 - 0       
   E200                 100 - 100             0 - 100             0 -  0                       0 - 0       
Calculate ultimate %Ownership &....= Group Share Method
Calculate Method:  Chek all
My ownership manager will be
Código
Denominación
Conso Method
Percent Con
1000
A
Full
92,26%
2000
B
Full
92,26%
3000
C
Full
92,26%
4000
D
Full
92,26%
5000
E
Full
90,41%
6000
F
Full
91,34%
7000
CREDITS
Holding
100,00%
Any suggest?
Thanks
Regards
Gustavo

Hola Gustavo.
please follow the steps
How to Calculate Ownership Data
1. Input Percent Control and Percent Ownership data into the Ownership
    Model.
     In the example below, you can see the web input form that was used.
     The Holding company (C9000) has 55 Percent Control over Germany and
     Germany(C1000) has 40 Percent Control over UK(C2000).
     The Holding company (C9000) has 70 Percent Ownership over Germany
     and Germany has 60 Percent Ownership over UK.
     Note: Percent Control is the description of the POWN account and
              Percent Ownership is the description of the POWN account.
     Note: The data is recorded against the Plan category since it is a test.
              An Excel input schedule could be used to enter the data as well.
2. Enter the Methods data as you see below for Share Range and Applicable
    Percent.
Figure: Methods
     Ownership calculations can now be executed and the system will propose
     which method to use based on Percent Control for example.
     Note: 0.75<,<=1.00 is interpreted as Greater than .75 but less than
               or equal to 1.00.
3. Access the Ownership Manger in edit mode.
Figure: Edit Mode - Initially
4. Add the members as shown below to the G_CG1 group.
Select the Consolidation Methods as shown below and save the data.
Figure: Ownership Structure
5. Calculate the Percent Control - Generated and Percent Ownership -
Generated values using the Direct Share Method.
Figure: Calculate Direct Share
This effectively copies the data entered in step one to the Percent Control -
Generated and Percent Ownership - Generated ownership accounts.
6. Calculate the Percent Control - Generated and Percent Ownership -
Generated values using the Group Share Method.
Figure
Figure: Calculate Group Share
The Group Share of C2000 is 22% Percent Control since C1000 only has
55% control (.55 x .40 = .22).
The Group Share of C2000 is 42% Percent Control since C1000 only has
70% ownership (.70 x .60 = .42).
7. Overwrite the Percent Ownership - Current using the Group Share Method.
Figure: Calculate Group Share and Overwrite POWN
The Percent Ownership - Current value is updated to 42% for C2000.
8. Update the Method, Percent Consolidation, and Percent Ownership values
using the Group Share Method.
Figure: Calculate Group Share and Update Method, PCON, and
POWN
The Method for C1000 is updated to Proportional since its Percent Control
falls between the range of .25 to .75 specified in the Methods above.
The Method for C2000 is updated to Equity since its Percent Control falls
between the range of .00 to .25 specified in the Methods above.
The Percent Control for C1000 is updated to .75 since its Percent Control
falls between the range of .25 to .75 specified in the Methods above.
The Percent Control for C2000 is updated to .25 since its Percent Control
falls between the range of .00 to .25 specified in the Methods above.
9. Update the methods and percentages based on the Direct Share Method
Figure: Calculate Direct Share and Update Method, PCON, and
POWN
The Method for C2000 is updated to Proportional since its Percent Control
falls between the range of .25 to .75 specified in the Methods above.
The Percent Control for C2000 is updated to .75 since its Percent Control
falls between the range of .25 to .75 specified in the Methods above.
10. Calculate group shares but do not update any other data.
Figure: Calculate Group Share
Now you can test updating methods and percentages based on previous
calculations.
11. Update methods and percentages based on previous calculations.
Figure: Update Method, PCON, and POWN Based on Previous
Calculation
Methods and percentages were updated based on the previous calculation.
Regards
Juan Pablo

Similar Messages

  • Error with BPC transport

    Hi All,
    We encounter an error transporting BPC dimensions. The error is raised when importing into the target system. All dimensions are imported fine, except the 10 dimensions that are use in one specific model.
    Error in Admin module or a component used by Admin module
    Failed to update dimension /CPMB/PMD0348, source prefix: PM, target prefix PM.
    Failed to import entity Dimension, ID:D_DATASRC
    Any ideas on this?
    Regards,
    Vincent

    Hi Vincent,
    Do you know what that transport is changing in target Model/Dimensions?
    Can you also run Data Checker in the target system to see if there are any issues with he Model/Dimensions?
    Regards,
    Gersh

  • SAP Server Manager Error after BPC installation on domain controller

    Hi, I have installed BPC on a domain controller with windows 2003 server (english version). When I launch diagnostic in the "SAP Server Manager"  I have the following error message " Current user Name does not have permission for Adminitrators group" . I think that the application it's taking the local user (the diagnistic show that de current user is "server name\user name" instead of "domain name\user name" but I login with the domain Administrator ( this server is a domain controller don't have local users).
    Thanks

    Hi
    I have the same issue that you had.
    "I have installed BPC on a domain controller with windows 2003 server (english version). When I launch diagnostic in the "SAP Server Manager" I have the following error message " Current user Name does not have permission for Adminitrators group" . The application it's taking the local user (the diagnistic show that de current user is "server name\user name" instead of "domain name\user name" but I login with the domain Administrator ( this server is a domain controller don't have local users)."
    Can you please let me know how you solved this ?
    thanks & regards
    Lokesh

  • Error in BPC Load infoprovider Package

    Hi,
    We upgraded BPC netweaver 7 to version 7.5.When we are trying to load the data from BI cube to BPC cube by using Load Infoprovider Package we got error.Please find the Error details below
    /CPMB/MODIFY completed in 0 seconds
    /CPMB/INFOPROVIDER_CONVERT completed in 0 seconds
    /CPMB/CLEAR completed in 0 seconds
    [Selection]
    InforProvide=YBPC_C12
    TRANSFORMATION= DATAMANAGER\TRANSFORMATIONFILES\Transformation.xls
    CLEARDATA= No
    RUNLOGIC= Yes
    CHECKLCK= Yes
    [Messages]
    Task name CONVERT:
    No 1 Round:
    Cannot find document/directory
    Application: CONSOLIDATION Package status: ERROR
    I request you to guide to clear the issue
    Thanks
    Mahesh

    Hi Mahesh,
    Usually with loads from BI you don't need conversions, so i'd suggest you delete that reference to conversion file unless you have something in it.
    If you put something in the conversion file that verify that this file located at the path you specified in your Transformation file.
    Hope this helps.
    Gersh

  • Transport Release runtime error in BPC Netweaver 10.1

    Hi,
    We are getting the following error while releasing the transport in SAP BPC NW 10.1 Development system
    Category               ABAP Programming Error
    Runtime Errors         UNCAUGHT_EXCEPTION
    Except.                CX_RSBPCR_INTERNAL_EXCEPTION
    ABAP Program           CL_RSBPCR_RES_MANAGER=========CP
    Application Component  BW-PLA-BPC-INF-WP
    Short Text
        An exception has occurred that was not caught.
    What happened?
        Exception 'CX_RSBPCR_INTERNAL_EXCEPTION' was raised, but it was not caught
         anywhere along the
        call hierarchy.
        Since exceptions represent error situations, and this error was not
        adequately responded to, ABAP program 'CL_RSBPCR_RES_MANAGER=========CP' had
         to be terminated.
    We are on SAP BW 7.40 patch level 5. Could you please advice the reason for this?

    Hello,
    so after implementing note 2050531 you should add the following entry in table UJPS_RESOURCE (caution I misspelled it earlier, it is not ups_resource).
    You can do this through transaction SE16 -> enter UJPS_RESOURCE and hit Create Entries.
    Fields MANDT and APPSET_ID should be filled with your BW System Client ID (i.e. 100) and your BPC Environment ID (i.e. ENVIRONMENTSHELL). The entries that appear to be empty should be left empty.
    MANDT
    APPSET_ID
    RESOURCE_ID
    TSTPNM
    TIMESTMP
    OBJSTAT
    CONTREL
    CONTTIMESTMP
    OWNER
    BWAPPL
    ACTIVFL
    PARENT_RES_ID
    UPDATE_COUNTER
    RESOURCE_TYPE
    CREATE_USER
    CREATE_TIME
    ORIG_LANGU
    OWNER_ID
    OWNER_TYPE
    Client ID
    Your Environment ID
    005056B236881ED38AE1D894578A8F97
    0
    ACT
    0
    3
    0
    FOLDER
    0
    E
    005056B236881ED38AE1D894578A8F97
    TEAM
    After this you should be able to release your request.
    Hope this is helpful.

  • Parent is not a valid member error in BPC

    hi all,
    i use SSIS package that upload members to BPC dimension and it worked successfully.
    But when i try to process dimension the following error appeared
    "  - Parent is not a valid member. -  Member ID : [Insurance],  Property Name : [PARENTH1],  Property Value : [AccruedExpenses]"
    Although that  i have this parent [AccruedExpenses] member in mbrAccount.
    your help is so appreciated
    Thanks in advance

    Heba,
    We ran into the same error (parent not valid, even though the parent was a memeber) when automating our dimension processing......
    Try looking at the data in your source table (for example, using Query Analyzer).  Do you have records with "NULL" as the value for one or more columns?  Not blank values - but values that in the query output actually have the letters NULL.  If so, you may have the same issue we had.....
    We found that fields on the source table that we were not specifically updating via the SSIS package (because we did not have any data from our source system) were getting filled with "NULL" - an example of such a field for us as NEWID.  The IDs coming from the source system will never change, so we did not have a NEWID value in the file we were mapping to our source table and so at first we just ignored NEWID field in the mapping in the SSIS package.  After getting the "parent is not valid..." errors, we updated the SSIS package to map something to all fields in the source table - if we didn't have a value from our source file for a particular field, then we mapped '' (two single quotes) to the field.  After making the change to the SSIS, we no longer had NULL values on the table and we also no longer go the parent is not valid errors!
    Also as a head's up to something else we learned the hard way.....  Make sure you are populating the CALC, DIMCALC, and ISBASEMEM fields on all your members with the appropriate value ("Y" or "N").
    Good luck!
    Regards,
    Shannon

  • Receiving error in BPC Data Manager while running Export package.

    We are in a multi server environment and receiving below error message while running Export package.
    Have anyone seen below error message in BPC 5.1
    An error occurred while executing a package.
    Package Error Events:
    ErrorCode = -1073668060
    Source = Dump Data
    SubComponent=
    Description = The task "Dump Data" cannot run on this edition of Integration Services. It requires a higher level edition.
    IDOfInterfaceWithError= {8BDFE889-E9D8-4D23-9739-DA807BCDC2AC}
    Thanks
    Sridhar

    Below are our BPC versions:
    BPC on Server Manager: 5.0.486
    Data Manager from eData: 5.0.484
    BPC from eTool: 5.0.486
    Below is the total error message as per your suggestion to run Export package. (even with service account which we used to install the software we are getting same error message.)
    TOTAL STEPS  2
    1. Dump Data:     Failed  in 0 sec.
    [Selection]
    FILE=\ApShell_SK\FINANCE\DataManager\DataFiles\SKTEST.TXT
    TRANSFORMATION=\ApShell_SK\FINANCE\DataManager\TransformationFiles\System Files\Export.xls
    MEASURENAME=PERIODIC
    (Member Selection)
    Category: ACTUAL
    Time: 2006.JAN
    Entity:
    Account:
    DataSrc:
    IntCo:
    RptCurrency: 
    [Messages]
    An error occurred while executing a package.
    Package Error Events:
    ErrorCode = -1073668060
    Source = Dump Data
    SubComponent=
    Description = The task "Dump Data" cannot run on this edition of Integration Services. It requires a higher level edition.
    IDOfInterfaceWithError= {8BDFE889-E9D8-4D23-9739-DA807BCDC2AC}

  • Error In BPC IC Elimination Package-Version 7.5

    Hi ,
    We upgraded our Dev BPC system rom version 7 to version 7.5.
    Now we are facing an error when running IC Elimination packge.Please find the error message as below
    "RUN_LOGIC:No account is available for inter-company elimination.
    Failed
    Application:CONSOLIDATION package status :Error"
    I request to provide solution to fix the above issue.
    Thanks
    Mahesh

    Can you try the below mapping:
    0GLACCOUNT=C_ACCT
    I have my transformation file maintained in such a way that my BPC dimensions are maintained to the right of '=' sign.
    Maintain your mapping like that and validate the tansformation file with the data in the BPC cube.
    Thanks

  • Error In BPC Netweaver Export Package-version 7.5

    Hi Bpc Experts, We upgraded DEV BPC Version 7 to 7.5 netweaver version. We are facing an issue when exporting data from BPC to BI application server.Please find the error message as below
    Task name CONVERT:
    No 1 Round:
    0GL_ACCOUNT is not a valid command or column 0GL_ACCOUNT does not exist in source
    Application: CONSOLIDATION Package status: ERROR
    I request you to give a suggestion to fix the above issue
    Thanks
    Mahesh

    Can you try the below mapping:
    0GLACCOUNT=C_ACCT
    I have my transformation file maintained in such a way that my BPC dimensions are maintained to the right of '=' sign.
    Maintain your mapping like that and validate the tansformation file with the data in the BPC cube.
    Thanks

  • Error in BPC Load infoprovider Package after upgraded BPC NW 7 to 7.5

    Hi,
    We upgraded BPC netweaver 7 to version 7.5.When we are trying to load the data from BI cube to BPC cube by using Load Infoprovider Package we got error.Please find the Error details below
    /CPMB/MODIFY completed in 0 seconds
    /CPMB/INFOPROVIDER_CONVERT completed in 0 seconds
    /CPMB/CLEAR completed in 0 seconds
    Selection
    InforProvide=ZBPC_IG
    TRANSFORMATION= DATAMANAGER\TRANSFORMATIONFILES\INFOCUBE_DATA_TRANS.XLS
    CLEARDATA= No
    RUNLOGIC= Yes
    CHECKLCK= Yes
    Messages
    Task name CONVERT:
    No 1 Round:
    Cannot find document/directory
    Application: CONSOL_IGAAP Package status: ERROR
    I request you to guide to clear the issue
    Other information
    1. We are currently working in BPC 7.5NW SP04.
    2. The problem occured while validating data to be uploaded from
    Infoprovider.
    3. We required to upload data from BI Infoprovider (ZBPC_IG) to BPC
    Application.
    Thanks
    Vikas

    Thanx
    We upgrade BPC NW SP04.... I check my  transformation file its ok because same transformation file file working in production on BPC 7.0 NW.
    Regards
    Vikash

  • Error executing BPC test script

    Hi,
    We are on HANA. Our performance team is trying to execute a test script from HP Load Runner. We are seeing the below error
    HTTP/1.0 500 Internal Server Error\r\n
    <TITLE>500 SAP Internal Server Error</TITLE>\n
    ERROR: XSLT: No valid XML source (termination: RABAX_STATE)<P>\n
      Error -26612: HTTP Status-Code=500 (Internal Server Error) for "http://fmsap980.erps.intel.com:8000/sap/bpc/files?method=list" [MsgId: MERR-26612]
    when we try and execute the same script manually within BPC front end, then no issues. everything is fine. Automating the test script is an issue.
    any script , same error.
    thanks for the help.

    Hey Ravi:
    Any chance you found a solution to this?
    Thanks
    Kalinga

  • Error in BPC Excel report

    Hello Experts,
    I am useing BPC 5.0,
    I am trying to create a EvDRE Grid report (Drag & Drop report in BPC Excel)
    I am Faceing an error as "EVDRE encountered an Error reteiveing data from the Web server".
    Thanks a lot for help.
    Cheers,

    Hi
    refer the pdf at Page 19 , may get somme help
    https://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/9016a6b9-3309-2b10-2d91-8233450139c1
    Regards
    Abhishek

  • Disp+work.exe error in BPC NW VM image

    Hi,
    I have one error coming up in BPC NW VM image which is pertaining to disp+work.exe service in sap management console. This service is currently stopped and when i try to re-start it,intially it's going in yellow color and displaying an error saying " Dialog Queue Standstill" and than the dispatcher stopped.
    My observation found. - database is running fine.
    There is no port conflict.
    Restared the machine and checked out.
    Any advice.

    Hi,
    I have opend the dev_w0, below data is the log information. It seems DpSysAdmExtCreate: VMC (JAVA VM in WP) is not active
    Can any one suggest the solution on this issue?
    B Thu Apr 15 10:37:15 2010
    B  create_con (con_name=R/3)
    B  Loading DB library 'C:\usr\sap\BPC\DVEBMGS00\exe\dbsdbslib.dll' ...
    B  Library 'C:\usr\sap\BPC\DVEBMGS00\exe\dbsdbslib.dll' loaded
    B  Version of 'C:\usr\sap\BPC\DVEBMGS00\exe\dbsdbslib.dll' is "700.08", patchlevel (0.37)
    B  New connection 0 created
    M sysno      00
    M sid        BPC
    M systemid   560 (PC with Windows NT)
    M relno      7010
    M patchlevel 0
    M patchno    39
    M intno      20020600
    M make:      multithreaded, Unicode, optimized
    M pid        3804
    M
    M  kernel runs with dp version 241000(ext=110000) (@(#) DPLIB-INT-VERSION-241000-UC)
    M  length of sys_adm_ext is 576 bytes
    M  ***LOG Q0Q=> tskh_init, WPStart (Workproc 0 3804) [dpxxdisp.c   1348]
    I  MtxInit: 30000 0 0
    M  DpSysAdmExtCreate: ABAP is active
    M  DpSysAdmExtCreate: VMC (JAVA VM in WP) is not active

    M Thu Apr 15 10:37:31 2010
    M  DpShMCreate: sizeof(wp_adm)          22152     (1704)
    M  DpShMCreate: sizeof(tm_adm)          4415616     (21968)
    M  DpShMCreate: sizeof(wp_ca_adm)          24064     (80)
    M  DpShMCreate: sizeof(appc_ca_adm)     8000     (80)
    M  DpCommTableSize: max/headSize/ftSize/tableSize=500/8/528056/528064
    M  DpShMCreate: sizeof(comm_adm)          528064     (1048)
    M  DpSlockTableSize: max/headSize/ftSize/fiSize/tableSize=0/0/0/0/0
    M  DpShMCreate: sizeof(slock_adm)          0     (96)
    M  DpFileTableSize: max/headSize/ftSize/tableSize=0/0/0/0
    M  DpShMCreate: sizeof(file_adm)          0     (72)
    M  DpShMCreate: sizeof(vmc_adm)          0     (1544)
    M  DpShMCreate: sizeof(wall_adm)          (38456/34360/64/184)
    M  DpShMCreate: sizeof(gw_adm)     48
    M  DpShMCreate: SHM_DP_ADM_KEY          (addr: 06620040, size: 5079440)
    M  DpShMCreate: allocated sys_adm at 06620040
    M  DpShMCreate: allocated wp_adm at 06622170
    M  DpShMCreate: allocated tm_adm_list at 066277F8
    M  DpShMCreate: allocated tm_adm at 06627828
    M  DpShMCreate: allocated wp_ca_adm at 06A5D8A8
    M  DpShMCreate: allocated appc_ca_adm at 06A636A8
    M  DpShMCreate: allocated comm_adm at 06A655E8
    M  DpShMCreate: system runs without slock table
    M  DpShMCreate: system runs without file table
    M  DpShMCreate: allocated vmc_adm_list at 06AE64A8
    M  DpShMCreate: allocated gw_adm at 06AE64E8
    M  DpShMCreate: system runs without vmc_adm
    M  DpShMCreate: allocated ca_info at 06AE6518
    M  DpShMCreate: allocated wall_adm at 06AE6520

    M Thu Apr 15 10:37:32 2010
    M  rdisp/queue_size_check_value :  -> off
    M  ThTaskStatus: rdisp/reset_online_during_debug 0
    X  EmInit: MmSetImplementation( 2 ).
    X  MM global diagnostic options set: 0
    X  <ES> client 0 initializing ....
    X  Using implementation view
    X  <EsNT> Using memory model view.
    M  <EsNT> Memory Reset disabled as NT default
    X  ES initialized.
    M  ThInit: running on host demo7a
    M  calling db_connect ...

    C  DBSDBSLIB : version 700.08, patch 0.037 (Make PL 0.39)
    C  MAXDB shared library (dbsdbslib) patchlevels (last 10)
    C    (0.037) NUMC conversion corrected (note 1288313)
    C    (0.024) Default value for max. input variables is 2000 (note 655018)
    C    (0.024) Profile parameter to define max. input variables (note 655018)
    C    (0.024) Switch SQLMODE after CREATE INDEX SERIAL (note 1267841)
    C    (0.024) Input parameters for SQL statements increased (note 655018)
    C    (0.018) Create index serial for MaxDB 7.6 (note 1267841)
    C    (0.018) More trace in case of packed to string conversion error (note 1262799)
    C    (0.016) R3trans export aborts with signal 6 (note 1262245)
    C    (0.009) IA64 alignment errors (note 1245982)
    C    (0.007) Support DB-Type 'SAP DB' by UPDSTAT (note 1225668)


    C  Loading SQLDBC client runtime ...

    C Thu Apr 15 10:37:33 2010
    C  SQLDBC SDK Version : SQLDBC.H  7.6.0    BUILD 002-121-083-965
    C  SQLDBC Library Version : libSQLDBC 7.6.4    BUILD 012-123-187-907
    C  SQLDBC client runtime is MaxDB 7.6.4.012 CL 187907
    C  SQLDBC supports new DECIMAL interface : 0
    C  SQLDBC supports VARIABLE INPUT data   : 1
    C  SQLDBC supports keepAlive indicator   : 0
    C  INFO : SQLOPT= -I 0 -t 0 -S SAPR3
    C  Try to connect (DEFAULT) on connection 0 ...

    C Thu Apr 15 10:37:34 2010
    C  Attach to SAP DB : Kernel    7.6.04   Build 012-123-187-907
    C  Database release is SAP DB 7.6.04.012
    C  INFO : Database 'BPC' instance is running on 'demo7a'
    C  DB max. input host variables  : 2000
    C  INFO : SAP DB Packet_Size = 131072
    C  INFO : SAP DB Min_Reply_Size = 4096
    C  INFO : SAP DB Comm_Size = 126976
    C  INFO : DBSL buffer size = 126976
    C  INFO : SAP DB MaxLocks = 300000
    C  INFO : Connect to DB as 'SAPBPC'
    C  Command info enabled
    C  Now I'm connected to SAP DB
    C  00: demo7a-BPC, since=20100415103733, ABAP= <unknown> (0)
    B  Connection 0 opened (DBSL handle 0)
    B  Wp  Hdl ConName          ConId     ConState     TX  PRM RCT TIM MAX OPT Date     Time   DBHost         
    B  000 000 R/3              000000000 ACTIVE       NO  YES NO  000 255 255 20100415 103732 demo7a         
    C  INFO : SAP RELEASE (DB) = 701
    M  db_connect o.k.
    M  ICT: exclude compression: .zip,.cs,.rar,.arj,.z,.gz,.tar,.lzh,.cab,.hqx,.ace,.jar,.ear,.war,.css,.pdf,.js,.gzip,.uue,.bz2,.iso,.sda,.sar,.gif,.swc,.swf

    M Thu Apr 15 10:38:33 2010
    M  DpSigInt: caught signal 2
    M  in_ThErrHandle: 1
    M  ThSigHandler: signal (step 1, th_errno 11, action 2)
    M  ThIErrHandle: new stat of W0 is WP_SHUTDOWN   
    M  ThIErrHandle: I'm during shutdown
    M  PfStatDisconnect: disconnect statistics
    M  ThIErrHandle: action changed to 2
    M  Entering ThSetStatError
    M Thu Apr 15 10:38:34 2010
    M  ThShutDownServer: shutdown server

  • Error in BPC Administration

    Dear Experts,
    I Newly Installed SAP BPC 5.1 with SQL Server 2005.
    When iam trying to open BPC Administration its showing a error message
    "A dimension information file cannot be created. There may be a network or Security issue.Error Message: Empty Zip File"
    And when iam trying to click on "Save to Server" & "Process Dimension" for Dimension is showing error message
    "Split File Error"
    Please help..
    Thanks alot in advance

    Does this happen to multiple users?  Multiple machines?
    Maybe its the xceedzip problem...
    Try and resolve by:                                                                               
    1.  Obtaining the XceedZip.dll from the application server's           
    x:\bpc\websrvr\web\installation directory.                                                                               
    2.  Copying and pasting that file to the client's x:\programs files\bpc
    directory.                                                                               
    3.  Registering the file on the client machine using regsvr32.

  • 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.'
                       

Maybe you are looking for

  • Is there a way to open looong Word documents in Illustrator?

    Hi, I absolutely DO NOT want to install some office progs on my machine (I have another one for that kind of boring stuff but that's still on its way across the ocean) and need to open a .doc document consiting on more than 1 page. Is there a way to

  • Creation of IBASE with the XIF adapter

    Hello, I am trying to create IBASES using the XIF adapter (LSMW). The actual creation of the IBASE is no problem, but creating an IBASE with a partner + address connection seems not to work. In HELP.SAP there are examples of IBASE craetion with compo

  • SecurityDomain and Caching Issues

    I am running into some caching issues when setting the securityDomain of an imported SWF to match the calling SWF file and I was curious if anyone had any ideas on how to get around this issue. Here is the scenario: A.swf is launched on Domain A, it

  • HT5622 My ipad says "Cannot connet to ITunes Store" Why does this happen and how do I recconect?? I have used my ITunes countless times and now it won't connect!

    I am suddenly unable to connect to the my ITUNES STORE and have checked thorugh all my settings but nothing stands out. I am able to enter my ITunes App but cannot purchase anything. Whenever I try, it will always say "Can not connect to ITUNES STORE

  • Editing online

    Hi, I have seen a similar question, but I am not sure if that's the answer I was looking for. We have purchased a subscription online and the person who purchased it said they read something about being able to edit PDFs that have been uploaded onto