Variable assignment inconsistency

Hi expers
I have have a question about variable assigement
Here are my variables declared.
data: a_sofm_document    TYPE REF TO cl_document_bcs,
         an_if_document     TYPE REF TO if_document_bcs,
This portion of code works perpectly
a_sofm_document = cl_document_bcs=>create_from_text( i_text = xt i_subject = subject )
an_if_document = a_sofm_document.  
Try to assign back from  an_if_document
a_sofm_document  = an_if_document .  " Doest not work and generate error when compiling
Somebody understand why ?? and How to obtain a_sofm_document back?
Thank you

Dominik,
but ths is not a good programming practice. From OO perspective you should never need to do something like this.
I must strongly disagree here. The basic usage is in combination with polimorphism . Imagine we have a container type as ref to some superclass. We store there a number of subclasses' references, treating them generically i.e. calling same poliphormical method for each. Now we want some specific operation to objects of only certain type. Downcasting here is ideal for such operation. This would go like
loop at me->ref_container into r_vehicle.
   try.
      r_plane ?= r_vehicle.
       "do addtional calc. only for planes
   catch cx_sy_move_cast_error.
endloop.
Another example would be RTTS classes where from superclass cl_abap_typedescr we derive some specialized one i.e
data r_tabledescr type ref to cl_abap_structdescr.
r_tabledescr ?= cl_abap_typedescr=>describe_by_data( itab ).
I think these proves downcasting is not only very important aspect of OO design but also let us smoothly switch b/w generalization and specialization which often is required to achieve some kind of functionality.
Any comments are welcome:)
Regards
Marcin

Similar Messages

  • Issue with the variable assignment in th Bex broadcaster

    hi ,
    i am working on Bex broadcaster . while creating a setting for a report, in the variable assignment under the General precalculation tab, the value given is not getting transferred.
    i tried it in development portal its working fine.
    do anyone have any ideas abt this.

    Hi Apurva,
    Find any solution for your problem? We are experiencing a similar issue too.
    Thanks,
    Vivek

  • Variable Assignment in General Precalculation tab of BI 7.0 broadcaster

    Hi,
      In the broadcast setting, under General precalculation tab variable values can be set up. When we are clicking create variable values, screen with all the variables of the query were coming.
    After entering data in the variables and clicking OK, values are not being transferred to the Broadcast setting. The variable page remains like that with out transferring to the Pre Calculation tab.
    We are on SAPKW70020.Distribution type used is Broadcast email, output fornat is MHTML. I tried with other output types, but same result.
    We are using query as the object type for creating Bex Broadcaster.
    Has anyone ran into this issue before?
    Thanks & Regards,
    Pradeep

    Hi Mohan,
    You have opened up an old post, so many responses might be to answer the initial question.
    However, to answer your question, when you click 'Create' next to the 'VAR01 in Variable assignment, what you see is a popup window with the 'Ready for Input' variable present in your query/ workbook/ template, which is the same variable screen which you get when you execute the same query/ workbook/ template independently. You can then enter values for those variables and click OK, to save it and to be passed to the broadcasting setting. The broadcast would then happen for the same variable values.
    However, if you face the issue mentioned by Pradeep, then after clicking OK, you can cancel the popup window. The values of the variables would still be passed.
    After the popup window closes, you can see the 'Create', you initially saw, replaced with 'Change'. This means the values are saved.
    Hope it helps.
    Thanks,
    Abhishek.

  • SQL*Plus variable assignment works for 8i but not 9i

    We have scripts that connect to each database on the box and perform database tasks nightly. The scripts first set the environment then connects to each database with SQL*Plus. This works for 8i but fails in the recently created 9i environment. (Unix Solaris environment)
    Because the SQL*Plus connection appears in many areas in the scripts, we assign the following connection string to a variable:
    SQLPLUS="/usr/oracle/product/9.2.0/bin/sqlplus -s 'xxx/xxxxxx@xxxx as sysdba'"
    Export SQLPLUS
    echo "$SQLPLUS"
    (This echo out correctly: /usr/oracle/product/9.2.0/bin/sqlplus -s 'xxx/xxxxxx@xxxx as sysdba')
    It fails when the script calls the assigned variable:
    $SQLPLUS <<-EOF
    with the following error:
    Usage: SQLPLUS [ [<option>] [<logon>] [<start>] ]
    where <option> ::= -H | -V | [ [-L] [-M <o>] [-R <n>] [-S] ]
    <logon> ::= <username>[<password>][@<connect_string>] | / | /NOLOG
    <start> ::= @<URI>|<filename>[.<ext>] [<parameter> ...]
    "-H" displays the SQL*Plus version banner and usage syntax
    "-V" displays the SQL*Plus version banner
    "-L" attempts log on just once
    "-M <o>" uses HTML markup options <o>
    "-R <n>" uses restricted mode <n>
    "-S" uses silent mode
    However, if I remove the SQLPLUS variable assignment and changed all occurrence of
    $SQLPLUS <<-EOF to
    /usr/oracle/product/9.2.0/bin/sqlplus -s 'xxx/xxxxxx@xxxx as sysdba' <<-EOF
    Then the script runs successfully. But this solution is cumbersome.
    Any ideas as to how to have the script work with assigning the SQLPLUS variable????
    Any help is appreciated.

    I has an immediate suspicion it might be related to the issue
    mentioned in
    http://otn.oracle.com/support/tech/sql_plus/htdocs/sub_var2.html#2_7
    but this proved wrong: the SP2-306 still occurs in the latest
    SQL*Plus.
    I wonder what version of 8i you had working? With an old SQL*Plus
    8.1.7.0 my connection failed the same as in 9.2 and 10i.
    My solution was to do:
      SQLPLUS='sqlplus -s'
      UNPW='/ as sysdba'
      $SQLPLUS "$UNPW" &lt;&lt;EOF
      EOFThis worked in 9.2.0.5, 10.1.0.2 and 8.1.7.0.
    One common security risk on UNIX remains: putting the username and
    password on the command line. On some systems a "ps" command will
    show the password to any user. If OS authentication cannot be used
    for connection, perhaps putting the username/password in the SQL
    script may be more secure?
    A final note is that in SQL*Plus 10g, no quotes are needed around
    AS SYSDBA, i.e.
      sqlplus / as sysdba works from the OS prompt, whereas in 9.2 you need to do
      sqlplus "/ as sysdba"This makes a solution easy:
      SQLPLUS="/usr/oracle/product/10.1.0/bin/sqlplus -s xxx/xxxxxx@xxxx as sysdba"-- CJ

  • Attributes / Variable assignment in Excel

    How do you create a variable assignment in Excel that passes the "test script coverage" report?
    We thought we were being clever when we put a list of our variable assignments in Excel. This allowed us to sort the assignments (something we could not do in Word.)
    Our process in Excel:
    We put an empty cell in the top row with the "OPM - Condition Heading" style.
    In the rows underneath that, we put our attributes with the "OPM - Conclusion Heading" style.
    To the right of the attributes, we put the assigned values with the "OPM - Conclusion" style.
    We had our nicely sortable list of variables and assignments. It looks cool and works quite well.
    However, test coverage analysis reports conclude that we have not tested the attributes since we didn't test for the "uncertain" path. Of course, our variables can never be "uncertain"! To some degree, the test coverage report is wrong, but I understand that the generated rule is an if-then-else rule and not a straight assignment...
    Thoughts? Is there a better way to do the variable assignment in Excel? Should we just live with it? Should we create a mock test with all our variables overridden to be "uncertain" or should we do something else?

    Sorry for the very late reply here, but I'm afraid the structure you have created is just not well handled by the coverage analysis because it compiles into a rule with an unreachable condition. This is normally harmless but the coverage analysis isn't smart enough to ignore it. I've raised a bug (OPAD-7096) to track this in our internal system.

  • Broadcasting and Variable Assignment

    Dear Experts,
      I want to assign variable in broadcasting dynamically. For example, this variable will be changed every month. I tried to set the variant on BEx Analyzer, and looked into the table TVARV, but I couldn't find my variant in that table. Is there any way to assign variable dynamically?

    Hi CSM Reddy,
    1. while creating your Broadcasting Settings ... you can use your Variable for OLAP Cache.
        Question1. How and where can I use variable for OLAP Cache in broadcasting. What I just see is variable assignment in the General Precalculation tab
        Question2. Variable for OLAP Cache you said is the same as the variable created in Query Designer, right?
    2. then you make sure the variable in Bex is setup with "Ready for input" unchecked
        Question1. I have to allow users to input month to see the report in the month they want, so I think I can't default the value for this variable.
        Question2. What do you mean 't Type variable'?

  • Broadcasting - General Precalculation Variable Assignment

    Hi All,
    Just have a query regarding Broadcast settings for a bex Query with variables.
    After creating the broadcast settings under the "General Precalculation"
    Variable Assignment
    > Determine from Variants options
    Can anyone tell me where do we have to create these variants so as to select them from the Broadcast settings window and map it to the query varaibles??
    Thanks
    Rao

    Hi Rao,
    You just need to execute ur query ( either in Bex Analyser or Web analyser ). In the selection screen you can enter the values for ur variable & save as a variant ( ex: VARIANT1 ).
    In broadcasting now click now variant tab there u can see the VARIANT1 which was created during query execution.
    Hope this helps.
    Regards,
    Sheetal

  • Variable Assignment : Workbook broadcast

    Hi gurus,
    We have been broadcasting 31 Inventory workbooks on a weekly basis for the past couple of months. The workbook is based on 1 inventory query which has a Cal Month and Store Location as mandatory variables. Obviously, while broadcasting the same, we should be able to set these variables in the Variable Assignment of the Workbook Precalculation Tab.
    Earlier I was able to see them in the variable assignment assignment for this workbook. We havn't changed the query, no changes in the system, No changes at all. But now I am not able to see a single variable in the variable assignment except for this variable that says Tech.Cont.: Time Frame for which Data is Selected.
    I am not sure where can I see the variants for this workbook. Anyways, we havn't mentioned any variants in the workbook precalculation tab. Please help me with this issue.
    I executed the query and tried broadcasting the corresponding query, Here I am able to see the variable assignment. But not for the corresponding workbook. Creating all the settings right from the scratch for changing from workbook broadcast to query result broadcast would be a very tedious task which I don't want to undertake right now.
    Can anyone please help me with this problem.
    Thanks & rgds,
    Sree

    Hi Murali,
    Thanks for your answer and sorry wasn't able to respond early.
    As I had mentioned, this problem didn't exist earlier. However, all of a sudden, we have started to face this issue. Global variants were never created because we are not using the option of VARIANTS, instead we use Variable Assignments. This has been the practice for the past many months, but all of sudden since last month, we started having this strange issue where we could'nt determine the variable assignment.
    When know I click on the variable assignment create link, there is only one variable that appears in the screen "Tech.Cont.: Time Frame for which Data is Selected", I donot see any other variables. Earlier though, i was able to see all the other variables (Plant, division, etc).
    Please let me know if you have any answer for this issue.
    Thnks & rgds,
    Sree

  • Variable assignment "Create" link opens up BEx Analyzer

    In a portal environment we're testing with, we are running into an unusual issue:
    In BEx Broadcaster, We open up a setting created for a particular query.  In the General Precalculation tab we are trying to create a variable assignment (Select VAR_01 from dropdown menu -->Create "link"), but when we click on the "Create" link, we're getting the BEx Analyzer instead of the variable screen for that query (doesn't work for any query, but for workbook settings, it works fine).  The following has been checked:
    ms/redirect_version is set to 1
    BI Support Desk tool is all GREEN
    Assertion ticket setup is correct (at least I think it is)
    I can also pull up Information Broadcasting directly from the backend system (sap/bw/Bex) and the variable screen comes up okay.
    Any ideas of some setting we're missing in the portal/backend?   Thanks for any help.
    (We're using NW SP 17 with BI-Java 17/23...BI Backend is NW SPS16)

    UPDATE:  fixed by updating support pack to BI JAva 18 (from 17/23).  The solution doesn't make much sense, but we've learned to just accept these sort of things in faith

  • Variable Assignment-Workbook Precalculation

    Hai Guys,
    I have a problem while executing.please,go through it
    Start---BEx Analyzer--
    Create new work book.While executing the work book,it is asking me to enter variable values.Once the variables are given and when start executing it, i am getting the ouput correctly and when i  broadcast the same through email,in work precalculation tab, again it is asking me to enter variable values.I have done that and  executed.  But I am  not able to receive any email.Infact,after taking 3 mnts it showing Timed out error.Kindly,suggest me with a solution to this. Where should I exactly enter variables?
    Kindly,give me a solution for this.
    Thanks,
    Mohan Chand Reddy A

    Hai Shakir,
                    First i thank q for ur reply to my question.But is it correct that we should assign Variables only in the Workbook Precalculation tab?Some one are suggesting like variables can be given both in foreground calculation i.e., while creating a workbook and also we should give the same variables in the workbook  precalculation tab.But in one document, i found there is no variable assignment tab in the Broadcasting settings.It means they might have given variables in the workbook creation itself.
          Please,reply me.It's very urgent.
    Thanks,
    Mohan Chand Reddy A

  • Variable assignment screen in Precalculation server

    Hi Guru's,
    I am not able to get solution for this problem from long time. Can anybody tell me...
    How to setup variable assignment screen in Precalculation server?
    Currently when i click Create Variable assignment in precalculation tab of broadcaster... it gives error that error loading 0ANALYSIS_PATTERN template.
    Plz help. whole points will be assigned.
    Thanks
    Harshal

    I made a copy of 0ANALYSIS_PATTERN, and changed spro settings, wkbks are broadcasting but only problem is i am not able to assign variables, because no popup screen coming for creating variables. i also wrote program for table RSRVARIANT.

  • Template declaration error when variable assigned is the same as variable declared

    Hi Fedor,
    In comm-central repository, when compiling mozilla/mfbt/Compression.cpp using -std=c++11, it results in an error as follows:
    "../dist/include/mozilla/CheckedInt.h", line 400: Error: Unexpected type name "T" encountered.
    "../dist/include/mozilla/CheckedInt.h", line 400: Error: value is not defined.
    "../dist/include/mozilla/CheckedInt.h", line 400: Error: No direct declarator preceding ">".
    "../dist/include/mozilla/CheckedInt.h", line 400: Error: A declaration does not specify a tag or an identifier.
    "../dist/include/mozilla/CheckedInt.h", line 400: Error: Default template argument cannot be specified on the definition of a class template member that appears outside of its class.
    "../dist/include/mozilla/CheckedInt.h", line 400: Error: Templates can only declare classes or functions.
    "../dist/include/mozilla/CheckedInt.h", line 413: Error: No primary specialization for partial specialization NegateImpl<T, 0>.
    "../dist/include/mozilla/CheckedInt.h", line 416: Error: Too many arguments for template mozilla::detail::NegateImpl<T>.
    8 Error(s) detected.
    After a check on the file CheckedInt.h, it was narrowed down to the following code that resulted in the failure (the variable assigned, isSigned is the same as variable being declared) :
    template<typename T, bool IsSigned = IsSigned<T>::value>
    struct NegateImpl;
    This code, however compiles without problems in gcc-4.8.
    A workaround was to use a different variable declared in the template (e.g. bool IsTSigned = IsSigned<T>). But I just wanted to be sure whether is this a bug in 12.4 Beta or whether coding rules in templates do allow this kind of declaration? Kindly advise. Thanks.
    Regards,
    Brian

    Hi Steve,
    The declaration made below is not valid when -std=c++11 is not used (it causes the same compile-time errors when using July Refresh):
    template<typename U> class IsSigned;
    template<typename T, bool IsSigned = IsSigned<T>::value>
    struct NegateImpl;
    So far, the workaround was to use a different variable declared in the template (e.g. bool IsTSigned = IsSigned<T>).
    Regards,
    Brian

  • Human tasks, complex types and variable assignment.

    Hi folks,
    I encountered a problem while working with 10.1.3.1 which I haven't managed to solve yet and would be grateful for assistance. I have defined a complex data type (just a sequence of strings) and want to fill that data type by going through a flow of screens, e.g. through several human tasks. I have defined that type as a variable to the BPEL process and have managed to assign simple expressions to the variable and pass that into a Human Task. In the task I see now a simple input form for all attributes of the type.
    Now the problem. After I fill out the form and complete the human task, I have
    The global variable:
    <outputVariable>
         <part xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="payload">
              <MyProcessResponse xmlns="http://xmlns.oracle.com/VacationRequest">
                   <vorname/>
                   <nachname/>
                   <strasse/>
                   <nummer/>
                   <postleitzahl/>
                   <stadt/>
                   <maximaleDauer/>
                   <minimaleDauer/>
              </MyProcessResponse>
         </part>
    </outputVariable>
    and the return value from the human task:
    <task>
         <title>CaptureData</title>-
              <payload>
                   <MyProcessResponse>
                        <vorname>David</vorname>
                        <nachname>Beckham</nachname>
                        <strasse>HighStreet</strasse>
                        <nummer/>
                        <postleitzahl/>
                        <stadt/>
                        <maximaleDauer/>
                        <minimaleDauer/>
                   </MyProcessResponse>
              </payload>
    </task>
    Now the only thing I would like to do is to replace the original values in the variable with the new values that have been returned from the task, this should be performed in an extra assign step. Sounds simple. JDeveloper wouldn't even let me klick through the return value from the HumanTask, so it seems as if I have to do things manually.
    These are my tries:
    Command 1:
    <copy>
         <from variable="CaptureData_1_globalVariable"
    part="payload" query="/task:task/task:payload" />
    <to variable="outputVariable" part="payload"
    query="/ns1:MyProcessResponse"/>
    </copy>
    Result 1:
    <outputVariable>
         <part xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="payload">
              <ns0:MyProcessResponse xmlns="http://xmlns.oracle.com/bpel/workflow/task"     xmlns:ns0="http://xmlns.oracle.com/VacationRequest">
                   <MyProcessResponse xmlns="http://xmlns.oracle.com/VacationRequest">
                        <vorname>David</vorname>
                        <nachname>Beckham</nachname>
                        <strasse>HighStreet</strasse>
                        <nummer/>
                        <postleitzahl/>
                        <stadt/>
                        <maximaleDauer/>
                        <minimaleDauer/>
                   </MyProcessResponse>
              </ns0:MyProcessResponse>
         </part>
    </outputVariable>
    --> There is one MyProcessResponse element too many
    Command 2:
    <copy>
         <from variable="CaptureData_1_globalVariable"
    part="payload" query="/task:task/task:payload"/>
    <to variable="outputVariable" part="payload"
    query="/ns1:MyProcessResponse/ns1:vorname"/>
    </copy>
    Result 2:
    <outputVariable>
         <part xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="payload">
              <MyProcessResponse xmlns="http://xmlns.oracle.com/VacationRequest">
                   <ns0:vorname xmlns="http://xmlns.oracle.com/bpel/workflow/task"                     xmlns:ns0="http://xmlns.oracle.com/VacationRequest">
                        <MyProcessResponse xmlns="http://xmlns.oracle.com/VacationRequest">
                             <vorname>David</vorname>
                             <nachname>Beckham</nachname>
                             <strasse>HighStreet</strasse>
                             <nummer/>
                             <postleitzahl/>
                             <stadt/>
                             <maximaleDauer/>
                             <minimaleDauer/>
                        </MyProcessResponse>
                   </ns0:vorname>
                   <nachname/>
                   <strasse/>
                   <nummer/>
                   <postleitzahl/>
                   <stadt/>
                   <maximaleDauer/>
                   <minimaleDauer/>
              </MyProcessResponse>
         </part>
    </outputVariable>
    --> This was moreless expected, since I tried to copy the stuff to some wrong place.
    Command 3:
    <copy>
         <from variable="CaptureData_1_globalVariable"
    part="payload" query="/task:task/task:payload/ns0:MyProcessResponse"/>
    <to variable="outputVariable" part="payload"
    query="/ns1:MyProcessResponse"/>
    </copy>
    Result 3:
    --> Task does't return (!!!). In the BPEL Worklist, the task is completed, however in the BPEL console it still apears as "waiting to return from Human task".
    Does anyone have a hint on how to copy the values so that I get exactly the structure that I printed at the very top?
    Thanks for help. Rock On !

    Hello everyone,
    It seems that we are talking about different things, I am afraid. Let me describe the scenario once again:
    - I want to have a BPEL process with more than one role involved
    - This process should be used to gather some complex data.
    - All data gathering should be done through HumanTasks.
    So I defined an xsd complex type, that contains a sequence of fields. This complex type should be part of the process payload.
    Now before HumanTask 1 is called, I copy the contents of this variable into the input for tasks1. This works fine and I see the appropriate values, when opening the Human Task in the BPEL worklist application.
    Now after HumanTask1 is completed, the values I entered inside that tasks are returned as a variable from the HumanTask. My problem is, that I cannot copy the contents of the task back into the main process. With simpleTypes this is relatively ok, since Jdev supports the assembling of the copy operation, however for complex tasks it fails.
    A typical scenario for this would be where e.g. a customer fills a shipping address and afterwards a store staff fills product details in the same order. In Java this could be solved via "pass by reference". Who can provide an example?

  • Variable assignment in BEx Broadcaster

    I'm trying to broadcast a web template directly from the Broadcaster, and want to assign variables. I've tried Determine from Variant, and it works like a charm.
    As I understand it I should be able to enter the variables manually by using Determine Here, but it doesn't seem to work for me.
    I choose VAR_01 from the Name dropdown, and click Create. Then I can enter my variables, and then what? If I click OK the report is generated in the same popup window, and from there I can do nothing but close the window, and the variables are not assigned.
    Can somebody help. Am I doing something wrong, is it a bug or have I simply misunderstood everything?

    Jacob,
    I have the same issue after I applied SP13 but I did not have this problem in SP11.
    Please let me, [email protected], know if you have a solution for this? Thanks.
    Regards,
    Ba

  • Variable assignment not working?

    Hello All, I am having a difficult time getting the value from an xpath to assign to a variable.
    I posted this question before and thought I got a good answer but to my surprise it doesn't work.
    I have created a variable 'CustNo' with the following xpath in the input field.
    /Msg/Body/Payload[2]/NAXML-Transportation/TransmissionHeader/TransmissionReceiver/normalize-space()
    The xpath shows the expected value when I evaluate it in XMLSpy against the rectest msg; however, when I test my scenario there is no value assigned to the 'CustNo' variable.
    All help is deeply appreciated.
    Mike

    Mike,
    I replied to you via email.
    Eddy

Maybe you are looking for

  • IChat no longer connecting to Jabber server after Leopard upgrade

    Just upgraded to Leopard yesterday, and the only significant glitch I notice so far is that iChat is now getting stuck in the "Connecting..." step when I try to get onto our Jabber server (which was working fine before the upgrade). Am now getting a

  • Not able to connect to DB due to SQL2071N error

    Hi, We restored an SAP BI 7.0 system running on AIX 5.3 and DB2 9.1.0.4 FixPack 4 64-bit system using UNIX file level restoration on an existing AIX server from a backup media. After restoration, I changed the hostnames and file permissions and manag

  • Premiere hangs when it cant find cache files

    Hi all, My question: How do I force premiere to open my projects without searching endlessly for cache files? If this cant be done: What is the best way to create a network based central cache folder from which multiple users can draw from. (the prob

  • What is the best option for updating BW Dev when it's out of sync with Prod

    I'm looking at getting our BW 3.X systems synchronised.  Currently the Dev system is developmentally behind the Production system.  One suggestion has been to transport the differences from Production back into Development - I'm concerned with how we

  • How do I see the number of albums that I have import to my Itunes?

    How do I see the number of albums that I have import to my Itunes? In the earlier version of Itunes I could see the number of albums, categories etc. that I have in my Itunes. How do I see the same info in Itunes 7.1.1? Best Kudsk