Dynamic survey

Hey guys,
I am facing a problem with transaction survey and survey_forms. I have created my own Z class (se24).  I have linked the class with UWS_SURVEY_FORM_SERVICE via transaction UBDS . I have created the questionaire with two parameters and what I want is to bind / to set the value of these parameters with the PERNR of the employee and the name of the employee.
I dont want to create those attributes in the survey for each employee and then set the value of the attributes to the parametes in the questionnaire, because this survey will be static !
What should be the name of the class? what should be the name of the methods in the class? I have created my own Z class with the superclass CL_UWS_FORM_RUNTIME . When I call the questionnaire with a user in the target group, I debug the class CL_UWS_FORM_RUNTIME but I want to debug my Z class. How should I link the relation between the class and the questionaire? Of course, I have added the load application library defined via UBDS.
Thanks a lot.
Please advise me. Maybe some step is forgotten, thanks !

Resolved

Similar Messages

  • Dynamic survey in CRM 5

    Hello,
    I have crated a survey at the CRM Survey suite.
    I want that this survey will be dynamic by the customer answers
    Which means: when someone enters a certain answer to a question in the survey, some specific options will open for him to continue with this survey and when entering other answers, different options will open.
    1.Is it possible?
    2.How it can be done?
    Thanks,
    Ohad.

    Hi,
    In the Survey Suite, in the Technical Settings of your Survey Attributes, you can enter a Callback PBO and PAI FM. See ex. CRM_SVY_EXAMPLE_DYNAMIC_PBO and CRM_SVY_EXAMPLE_DYNAMIC_PAI.
    You can enter javascript code which will be executed before or after processing.
    Regards,
    Jan
    (Please award points if usefull. Tx)

  • Dynamic Survey determination in Complaint document

    Hi,
    Is it possible to dynamically determine a survey in a service complaint transaction type? There is the standard determination configuration rules but I'm looking for a dynamic way to select a survey based on for example the user status in a transaction. Is there a BADI or something like that?
    Thanks,
    Patrick

    Hi Patrick,
    have you found a solution for this issue? I'm having the same requirement and am currently looking for a solution.
    Thank you!
    Regards
    Marko

  • Dynamic User Survey Portlet

    Dynamic User Survey Portlet. I want to create a dynamic survey in oracle portals.
    The administrator should be able to specify the questions, answer column attributes in a database table and activate the
    current survey using a status_flag column. How to write a portlet to generate the survey page dynamically and
    present to the user. The questions and answers should be inserted into another database table on submit.
    Any sample, ideas really appreciated
    Vimal

    Hi,
    I have answered a similar question in
    Re: .NET application works OK on infrastructure, but has problems on midtie
    Thanks,
    Sharmila

  • Dynamic forms in struts

    Hi,
    I have a pretty difficult problem that I don't know how to solve using struts. I need to generate dynamic surveys from a database. The structure of the survey can be different for every different user. I really want to use the struts Form classes but I'm not sure how to do this. The only way I can think of is messy...
    For every new type of survey generated from the database...
    1. Generate a new class definition for the struts Form object and compile that.
    2. Every struts Action class that interacts with the new dynamic Form classes will need to use reflection on the dynamic Form object to be able to pull all of the data from that form.
    I'm sure there are many web sites where forms are dynamically generated and I would think this problem has already been solved. Does anyone out there have any ideas?

    Try to follow this way:
    1 provide actions chain in your configuration file like this:
             <form-bean
                  name="addFlatForm"
                  type="app.owner.forms.AddFlatForm">
                </form-bean>
            <action
                 path="/InitAddFlatForm"
                 type="app.owner.actions.InitAddFlatFormAction"
                 attribute="addFlatForm"
                 validate="false"
                 parameter="owner.extendedplace;place;/pages/AddFlat.jsp">             
            </action>
            <!-- "/pages/AddFlat.jsp" - jsp page with html:form on it-->     
            <action
                 path="/AddFlatForm"
                 type="app.owner.actions.AddFlatAction"
                 name="addFlatForm"
                 validate="true"
                 input="/pages/AddFlat.jsp">
                 <forward
                      name="success"
                      path="/shortinfo/Welcome.do"></forward>
            </action>2 first action(InitAddFlatFormAction) will be "prepare" action, where you must create new instance of the ActionForm descendant with Map, List, array etc definition. where your dynamic fields will be located , and fill the keys value from your database.
    public class InitAddFlatFormAction extends Action{
         public ActionForward execute(ActionMapping mapping, ActionForm form,
                HttpServletRequest request, HttpServletResponse response){
              //obtain parameters
              String[] params = ActionHelper.parseParameter(mapping, 3, Constants.PARAMETER_SEPARATOR);
              //get extended place from session attribute
              ExtendedPlace currPlace = (ExtendedPlace)ServletUtils.getAttribute(
                        request, params[0], ServletUtils.SESSION_SCOPE);
              //create form if form == null
             if (form == null) {
                  System.out.println("InitAddFlatFormAction::execute method: create new instance of action form.");
                  //create new form instance
                  form = new AddFlatForm(new HashMap<String, Object>());
                  //set form to selected scope attribute
                if ("request".equals(mapping.getScope()))
                     ServletUtils.setAttribute(request,
                               form, mapping.getAttribute(), ServletUtils.REQUEST_SCOPE);   //just set the value to selected scope
                else
                     ServletUtils.setAttribute(request,
                               form, mapping.getAttribute(), ServletUtils.SESSION_SCOPE);   //just set the value to selected scope
             //fill the form
             AddFlatForm flatForm = (AddFlatForm) form;
             flatForm.setValue(params[1], currPlace);
             return URIUtils.forwardAction(params[2]);
         }3 second action(AddFlatAction) will be "process" action. This action can be used when your data are successful validated.
    //any your actions4 form bean(ActionForm desctndant)
    public class AddFlatForm extends ActionForm{
         public AddFlatForm(Map<String, Object> map){
              super();
              //check input arguments
              AssertHelper.notNullIllArg(map);
              setMap(map);
         private Map<String, Object> map = null;
         public void setMap(Map<String, Object> map) {
              this.map = map;
         public Map<String, Object> getMap() {
              return this.map;
         public void setValue(String key, Object value){
              getMap().put(key,value);
         public Object getValue(String key){
              return getMap().get(key);
        public ActionErrors validate(ActionMapping mapping,
                HttpServletRequest request) {
            return (null);
    }And than in your jsp page you can use something like this:
    <%@ taglib uri="/tags/struts-html" prefix="html" %>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
                                            <c:set var="placeId">
                                                 <bean:write name="extPlace" property="placeInfo.id"/>
                                            </c:set>
                                            <c:set var="groupId">
                                                 <bean:write name="groups" property="filterGroupInfo.id"/>
                                            </c:set>
                                            <c:set var="filterId">
                                                 <bean:write name="filters" property="filter.id"/>
                                            </c:set>
                                            <bean:message name="filters" property="filter.filterDescription"/>
                                            <html:text property="value(${placeId};${groupId};${filterId})"/>                                                                 Something like this are displayed in struts-example.war (example application for struts1.1)
    pay attention for classes
    EditRegistrationAction.java and SaveRegistrationAction.java
    sorry for bad english... :)

  • New Survey Sample on OTN

    All,
    A new Survey Sample demonstrating the features of XML DB has been posted on the OTN.
    Using this sample, a user can create dynamic Surveys, collect responses to the Survey and analyse them in a graphical manner. The Survey and responses are stored as XML in an XMLType column of Oracle XML DB.
    For more information, click http://otn.oracle.com/sample_code/tech/xml/survey/content.html
    Thanks,
    Rajat,
    OTN Team @IDC

    What is the link to download this application?
    I was looking for a survey application demo and it seems to be what I was looking for.
    Could you point me to the right place to download this application?
    many thanks,
    Alex

  • Problem running servlet using PJA tools

    Hi
    I am trying to run the TeksSurveyPie servlet from the PJA Package.But everytime i run it says
    Internal error: Unexpected error condition thrown (java.lang.NoClassDefFoundError: TeksSurveyPie (wrong name: com/eteks/servlet/TeksSurveyPie),TeksSurveyPie (wrong name: com/eteks/servlet/TeksSurveyPie)), stack: java.lang.NoClassDefFoundError: TeksSurveyPie (wrong name: com/eteks/servlet/TeksSurveyPie)
    at java.lang.ClassLoader.defineClass0(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:495)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:110)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:251)
    at java.net.URLClassLoader.access$1(URLClassLoader.java:217)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:198)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:192)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:300)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:290)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:256)
    at java.lang.ClassLoader.findSystemClass(ClassLoader.java:629)
    at com.iplanet.server.http.servlet.NSServletLoader.findClass(NSServletLoader.java:152)
    at com.iplanet.server.http.servlet.NSServletLoader.loadClass(NSServletLoader.java:108)
    at com.iplanet.server.http.servlet.NSServletEntity.load(NSServletEntity.java:337)
    at com.iplanet.server.http.servlet.NSServletEntity.update(NSServletEntity.java:173)
    at com.iplanet.server.http.servlet.NSServletRunner.Service(NSServletRunner.java:427)
    I am tryin to access the servlet like this
    https://avenger/servlet/TeksSurveyPie?survey=Yes
    Pls tell me where i am going wrong...????Its preety urgent ....
    thanks
    prabhu

    the servlet is as below for reference .....
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.ServletException;
    import javax.servlet.ServletConfig;
    import javax.servlet.UnavailableException;
    import java.io.IOException;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.OutputStream;
    import java.util.Properties;
    import java.util.Vector;
    import java.util.Enumeration;
    import java.util.Hashtable;
    import java.util.StringTokenizer;
    import java.awt.Graphics;
    import java.awt.Color;
    import java.awt.Frame;
    import java.awt.AWTError;
    import java.awt.Image;
    import java.awt.image.FilteredImageSource;
    import Acme.JPM.Encoders.GifEncoder;
    import com.eteks.filter.Web216ColorsFilter;
    import com.eteks.awt.servlet.PJAServlet;
    * This servlet manages in a simple way a dynamic survey and returns the pie of the survey.
    * It can be called in either ways :
    * <UL><LI><code>.../servlet/com.eteks.servlet.TeksSurveyPie?survey=mySurvey&answer=myAnswer</code>
    * adds the answer <code>myAnswer</code> to the survey <code>mySurvey</code>,
    * and then returns the pie of the current state of <code>mySurvey</code>.
    * <LI><code>.../servlet/com.eteks.servlet.TeksSurveyPie?survey=mySurvey</code>
    * simply returns the pie of the current state of <code>mySurvey</code>.</UL>
    * <P>To be platform independant, the servlet uses <code>com.eteks.awt.servlet.PJAServlet</code> as super class,
    * to have at disposal an image into which graphics operation can be performed.<BR>
    * <code>com.eteks.awt.PJAServlet</code> class and depending classes of <code>com.eteks.awt</code> packages
    * must be in the servlet engine classpath, and at least one .pjaf font file (Pure Java AWT Font) must exist
    * in the user directory or in the directory set in the <code>java.awt.fonts</code> system property,
    * if JVM version <= 1.1.<BR>
    public class TeksSurveyPie extends PJAServlet
    Properties surveysParam = new Properties ();
    String fontsDir = ""; // Default value for "java.awt.fonts" .pjaf fonts directory initParameter
    String surveysFile = fontsDir + File.separator + "survey.txt"; // Default value for survey file initParameter
    // Colors used to fill the pie
    final Color colors [] = {Color.blue,
    Color.green,
    Color.red,
    Color.cyan,
    Color.magenta,
    Color.gray,
    Color.yellow,
    Color.pink,
    Color.orange,
    Color.white};
    final Color penColor = Color.black;
    public void initPJA (ServletConfig config) throws ServletException
    // Store the ServletConfig object and log the initialization
    super.initPJA (config);
    // Retrieves surveys file path
    String param = getInitParameter ("surveysFile");
    if (param != null)
    surveysFile = param;
    param = getInitParameter ("fontsDir");
    if (param != null)
    fontsDir = param;
    FileInputStream in = null;
    try
    in = new FileInputStream (surveysFile);
    surveysParam.load (in);
    catch (IOException e)
    { } // Empty properties
    finally
    try
    if (in != null)
    in.close ();
    catch (IOException ex)
    public void destroyPJA ()
    try
    surveysParam.save (new FileOutputStream (surveysFile), "Survey file");
    catch (IOException e)
    { } // Properties can't be saved
    public String getFontsPath ()
    return super.getFontsPath () + File.pathSeparator
    + fontsDir;
    public void doPostPJA (HttpServletRequest request,
    HttpServletResponse response)
    throws ServletException, IOException
    doGetPJA (request, response);
    public void doGetPJA (HttpServletRequest request,
    HttpServletResponse response)
    throws ServletException, IOException
    String survey = request.getParameter ("survey"); // Survey name
    String answer = request.getParameter ("answer"); // Proposed answer
    String paramWidth = request.getParameter ("width");
    String paramHeight = request.getParameter ("height");
    int width = paramWidth == null ? 200 : Integer.parseInt (paramWidth);
    int height = paramHeight == null ? 100 : Integer.parseInt (paramHeight);
    // v1.1 : Changed code to enable image creation
    // even if PJAToolkit couldn't be loaded by Toolkit.getDefaultToolkit ()
    Image image = createImage (width, height);
    if (survey == null)
    survey = "";
    if (answer != null)
    String key = survey + "_" + answer;
    String value = surveysParam.getProperty (key);
    if (value != null)
    // If the answer already exists, increase its value
    surveysParam.put (key, String.valueOf (Integer.parseInt (value) + 1));
    else
    String surveyAnswers = surveysParam.getProperty (survey);
    // Add this answer to the other ones
    if (surveyAnswers == null)
    surveysParam.put (survey, answer);
    else
    surveysParam.put (survey, surveyAnswers + "," + answer);
    surveysParam.put (key, "1");
    Hashtable answers = new Hashtable ();
    Vector sortedAnswers = new Vector ();
    synchronized (surveysParam)
    String surveyAnswers = surveysParam.getProperty (survey);
    if (surveyAnswers != null)
    for (StringTokenizer tokens = new StringTokenizer (surveyAnswers, ",");
    tokens.hasMoreTokens (); )
    String token = tokens.nextToken ();
    int answerCount = Integer.parseInt (surveysParam.getProperty (survey + "_" + token));
    answers.put (token, new Integer (answerCount));
    // Seek the good place to insert this element
    int i;
    for (i = 0; i < sortedAnswers.size (); i++)
    if (answerCount > ((Integer)answers.get (sortedAnswers.elementAt (i))).intValue ())
    break;
    sortedAnswers.insertElementAt (token, i);
    // Compute the pies of the survey
    drawSurveyPies (image, answers, sortedAnswers, width, height);
    // Send generated image
    sendGIFImage (image, response);
    * Generates a GIF image on the response stream from image.
    public void sendGIFImage (Image image, HttpServletResponse response) throws ServletException, IOException
    // Set content type and other response header fields first
    response.setContentType("image/gif");
    // Then write the data of the response
    OutputStream out = response.getOutputStream ();
    try
    new GifEncoder (image, out).encode ();
    catch (IOException e)
    // GifEncoder may throw an IOException because "too many colors for a GIF" (> 256)
    // were found in the image
    // Reduce the number of colors in that case with Web216ColorsFilter basic filter
    new GifEncoder (new FilteredImageSource (image.getSource (),
    new Web216ColorsFilter ()),
    out).encode ();
    out.flush ();
    private void drawSurveyPies (Image image,
    Hashtable answers,
    Vector sortedAnswers,
    int width,
    int height)
    Graphics gc = image.getGraphics ();
    // Draw a shadow
    gc.setColor (penColor);
    gc.fillOval (1, 1, height - 3, height - 3);
    gc.fillOval (2, 2, height - 3, height - 3);
    // Compute the sum of all values
    int sum = 0;
    for (Enumeration e = answers.elements ();
    e.hasMoreElements (); )
    sum += ((Integer)e.nextElement ()).intValue ();
    for (int accum = 0, i = 0, deltaY = 0; i < sortedAnswers.size (); i++, deltaY += 15)
    int answerValue = ((Integer)answers.get (sortedAnswers.elementAt (i))).intValue ();
    int startAngle = accum * 360 / sum;
    int angle = answerValue * 360 / sum;
    // Fill the anwser pie
    gc.setColor (colors [i % colors.length]);
    gc.fillArc (0, 0, height - 3, height - 3, startAngle, angle);
    // Draw a separating line
    gc.setColor (penColor);
    gc.drawLine ((height - 3) / 2, (height - 3) / 2,
    (int)((height - 3) / 2. * (1 + Math.cos (startAngle / 180. * Math.PI)) + 0.5),
    (int)((height - 3) / 2. * (1 - Math.sin (startAngle / 180. * Math.PI)) + 0.5));
    accum += answerValue;
    if (deltaY + 15 < height)
    // Add a comment
    gc.setColor (colors [i % colors.length]);
    gc.fillRect (height + 6, deltaY + 1, 13, 10);
    gc.setColor (penColor);
    gc.drawRect (height + 5, deltaY, 14, 11);
    // Draw is done with default font
    gc.drawString (String.valueOf (100 * answerValue / sum) + "% " + (String)sortedAnswers.elementAt (i),
    height + 22, deltaY + 9);
    gc.drawLine ((height - 3) / 2, (height - 3) / 2, height - 3, (height - 3) / 2);
    // Draw a surrounding oval
    gc.drawOval (0, 0, height - 3, height - 3);
    Thx
    prabhu

  • In cloud for service, is there a way to generate RMA's and decision trees?

    Also, where can I find more information on the field service capabilites?

    Yes it is supported via HCI configuration. C4Service provides a standard iFlow that creates a follow-up SD Order (Billing Request) from a C4Service Work Ticket. You can easily reconfigure the iFlow using HCI tools to create a SD Return Order instead of a SD Billing Request. This would then allow you to easily configure the C4Service work ticket to be a RMA capture form so that an end user can capture the products/parts as items for the SD Return Order (RMA). The end user can then release the Work Ticket to ERP which would create the RMA and ERP would take over the RMA process.
    As for the decision tree, this is supported using dynamic checklists and surveys for tickets. You can configure a dynamic survey/checklist that can have a series of questions that based on questions answered in the previous step can have different follow-up questions. These surveys/checklists can instruct the end user through a series of questions to help them diagnose a problem to ultimately instruct the end user to release the work ticket to SD for a Return Order (RMA).

  • Surveys - dynamic list box option

    Hi,
    How can I control the entries for the answer category "Dynamic list box with single selection"?
    Thanks,
    Susana Messias

    Hello Susana,
    To maintain dynamic values for a specific answer, select your survey in the Survey Suite and go to the maintenance of survey attributes (CTRL+F12). Under the tab 'Technical settings', you can maintain the 'Callback to PBO' function module, which allows you to modify the survey at runtime. (The function module you specify here is called by the survey tool runtime environment at PBO.)
    As an example, you can have a look at the function module 'CRM_SVY_EXAMPLE_DYNAMIC_PBO', which contains a section to set answer options at runtime. Of course, you would have to program your own logic to meet your specific requirements for setting the values.
    I hope this helps.
    Kind regards,
    Kristoff

  • How to use dynamic list box in survey builder?

    Hello,
    Could someone give me a little bit of thread? How to use dynamic list box in survey builder?

    Hi Liu,
    Dynamic combo boxes::A combo box is dynamic if it references a document property for which a value set is defined in the configuration (System Administration ® System Configuration ® Content Management ® Global Services ® Property Metadata ® Properties ® Parameter Allowed Values).
    At runtime (when you open the creation form) the system reads these values from the configuration and displays them in the dropdown list.
    If you link a combo box for which list entries already exist to a document property with a value set, the system asks whether you want to delete the list entries. it is recommend that you accept this suggestion and delete the list entries from the XML Forms Builder. Otherwise inconsistencies could arise between the entries in the XML Forms Builder and the value set in the configuration. This can cause errors when saving.
    Also you may Refer the Link for Further help:
    http://help.sap.com/saphelp_crm50/helpdata/en/29/c40d3d2a83752de10000000a114084/frameset.htm
    http://help.sap.com/saphelp_crm50/helpdata/en/00/9e7f41969e1809e10000000a155106/frameset.htm
    http://help.sap.com/saphelp_crm50/helpdata/en/a7/5a874174a8050de10000000a1550b0/frameset.htm
    Hope it Answers your Queries..
    Thanks and Regards,
    RK.

  • Change dynamic answers in Survey

    Hello all,
    I have a Survey defined in CRM for operation Contact.
    A question of this survey will have dynamic answers, depending on one of the related BPs.
    To achieve it, I have:
    1. Defined the answer for this question as "Dynamic list box with multiple selections"
    2. used the callback PBO of the survey and, inside it, I get the id of the answer using:
      REFRESH lt_answer_ids.
      CALL METHOD IR_SURVEY_VALUES->ANSWER_IDS_GET
        EXPORTING
          I_QUESTION_ID = 'id_8180f46fa436b84383905869e3c65628'
        IMPORTING
          ET_ANSWER_IDS = lt_answer_ids
    and then, I set the dynamic answers using:
        CALL METHOD IR_SURVEY_VALUES->DYNAMIC_ITEMS_ADD
          EXPORTING
            IT_ADD_ITEMS = lt_add_items
    This works completely fine.
    BUT, I want to change this dynamic answers when the user changes the related BP on which they depend.
    Have you got any idea?

    Hello all,
    finally I found it:
    problem was that the data was properly updated, BUT the html code was not refreshed.
    I paste the code of the PBO function module. You can find the "trick" within the last lines of the code
    FUNCTION CRM_SVY_CONTACTOS_SYV_PBO.
    *"*"Interfase local
    *"  IMPORTING
    *"     REFERENCE(I_APPLICATION_ID) TYPE  CRM_SVY_DB_APPL_ID
    *"     REFERENCE(I_SURVEY_ID) TYPE  CRM_SVY_DB_SID
    *"     REFERENCE(I_SURVEY_VERSION) TYPE  CRM_SVY_DB_SVERS
    *"     REFERENCE(I_LANGUAGE) TYPE  LANGU
    *"     REFERENCE(I_VALUEGUID) TYPE  CRM_SVY_DB_SV_GUID
    *"     REFERENCE(I_VALUEVERSION) TYPE  CRM_SVY_DB_SV_VERS
    *"     REFERENCE(IR_SURVEY_VALUES) TYPE REF TO  CL_CRM_SVY_VALUES
    *"     REFERENCE(IT_SURVEY_PARAMS) TYPE  CRM_SVY_API_PARAMETER_T
    CONSTANTS:
      lc_field_for_reload(31) TYPE c VALUE '(SAPLCRM_SURVEY_UI)gv_load_html'.
    </b>
    DATA:
      lt_dynamic_delete TYPE CRM_SVY_API_PARAMETER_T,
      lt_header_guid    TYPE crmt_object_guid_tab,
      lt_partner        TYPE crmt_partner_external_wrkt,
      lt_medios_comun   TYPE TABLE OF ZBUT0000000002,
      lt_answer_ids     TYPE CRM_SVY_API_XML_T,
      lt_dynamic_items  TYPE survy_t_additems,
      lt_add_items      TYPE survy_t_additems.
    DATA:
      lw_dynamic_delete LIKE LINE OF lt_dynamic_delete,
      lw_promocion      LIKE LINE OF lt_partner,
      lw_medios_comun   LIKE LINE OF lt_medios_comun,
      lw_answer_ids     LIKE LINE OF lt_answer_ids,
      lw_add_items      LIKE LINE OF lt_add_items,
      lw_dynamic_items  LIKE LINE OF lt_dynamic_items.
    DATA:
      l_tipo_medio   TYPE BU_BEZ50,
      l_xml          TYPE string,
      l_xml_hex      TYPE xstring,
      l_string       TYPE string,
      l_header_guid  TYPE crmt_object_guid,
      l_promocion    TYPE bu_partner.
    FIELD-SYMBOLS:
      <fs_reload_html> TYPE crmt_boolean.
      REFRESH lt_dynamic_items.
      CALL METHOD IR_SURVEY_VALUES->DYNAMIC_ITEMS_GET
        IMPORTING
          ET_DYNAMIC_ITEMS = lt_dynamic_items
    **Save actual dynamic items, in order to compare them later
      IF NOT lt_dynamic_items[] IS INITIAL.
        CLEAR lw_dynamic_items.
        MODIFY lt_dynamic_items FROM lw_dynamic_items
                                TRANSPORTING item-selected
                                WHERE NOT item-selected IS INITIAL.
      ENDIF.
    **Get dynamic answers identifier
      REFRESH lt_answer_ids.
      CALL METHOD IR_SURVEY_VALUES->ANSWER_IDS_GET
        EXPORTING
          I_QUESTION_ID = 'id_8180f46fa436b84383905869e3c65628'
        IMPORTING
          ET_ANSWER_IDS = lt_answer_ids
      DELETE ADJACENT DUPLICATES FROM lt_answer_ids.
      CLEAR lw_answer_ids.
      READ TABLE lt_answer_ids INTO lw_answer_ids
                               INDEX 1.
    **Get current business partner
      CLEAR l_header_guid.
      CALL FUNCTION 'CRM_INTLAY_GET_HEADER_GUID'
        IMPORTING
          EV_HEADER_GUID       = l_header_guid
      IF NOT l_header_guid IS INITIAL.
    ********Get the partner
        REFRESH lt_header_guid.
        INSERT l_header_guid INTO TABLE lt_header_guid.
        CALL FUNCTION 'CRM_ORDER_READ'
          EXPORTING
            IT_HEADER_GUID                = lt_header_guid
          IMPORTING
            ET_PARTNER                    = lt_partner
          EXCEPTIONS
            DOCUMENT_NOT_FOUND            = 1
            ERROR_OCCURRED                = 2
            DOCUMENT_LOCKED               = 3
            NO_CHANGE_AUTHORITY           = 4
            NO_DISPLAY_AUTHORITY          = 5
            NO_CHANGE_ALLOWED             = 6
            OTHERS                        = 7
        IF SY-SUBRC <> 0.
          REFRESH lt_partner.
        ENDIF.
        CLEAR lw_promocion.
        READ TABLE lt_partner INTO lw_promocion
                              WITH KEY ref_guid        = l_header_guid
                                       ref_kind        = 'A'
                                       ref_partner_fct = 'ZPROMON'.
        IF sy-subrc EQ 0.
          CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
            EXPORTING
              INPUT         = lw_promocion-ref_partner_no
            IMPORTING
              OUTPUT        = l_promocion
        ENDIF.
      ENDIF.
    **Get the dynamic values for current partner
      IF NOT l_promocion IS INITIAL.
        REFRESH lt_medios_comun.
        SELECT *
          INTO TABLE lt_medios_comun
          FROM ZBUT0000000002
         WHERE partner EQ l_promocion.
        IF sy-subrc NE 0.
          REFRESH lt_medios_comun.
        ENDIF.
      ENDIF.
    *Build up dynamic range for dynamic values
      REFRESH lt_add_items.
      CLEAR lw_medios_comun.
      LOOP AT lt_medios_comun INTO lw_medios_comun.
        CLEAR l_tipo_medio.
        SELECT SINGLE text
          INTO l_tipo_medio
          FROM ZTB000000000GT
         WHERE spras EQ sy-langu
           AND zztipomedio EQ lw_medios_comun-zztipomedio.
        CLEAR lw_add_items.
        lw_add_items-question_id    = 'id_8180f46fa436b84383905869e3c65628'.
        lw_add_items-answer_id      = lw_answer_ids-line.
        CONCATENATE l_tipo_medio '/' lw_medios_comun-zzdescripcio
          INTO lw_add_items-item-item_text
          SEPARATED BY space.
        lw_add_items-item-value     = lw_add_items-item-item_text.
        APPEND lw_add_items TO lt_add_items.
        CLEAR lw_medios_comun.
      ENDLOOP.
    **Should current dynamic items are different from previous ones? --> Change them
      IF lt_add_items[] NE lt_dynamic_items[].
        REFRESH lt_dynamic_delete.
        CLEAR lw_dynamic_items.
        LOOP AT lt_dynamic_items INTO lw_dynamic_items.
          CLEAR lw_dynamic_delete.
          lw_dynamic_delete-name  = lw_dynamic_items-question_id.
          lw_dynamic_delete-value = lw_dynamic_items-answer_id.
          INSERT lw_dynamic_delete INTO TABLE lt_dynamic_delete.
          CLEAR lw_dynamic_items.
        ENDLOOP.
        IF NOT lt_dynamic_delete[] IS INITIAL.
          CLEAR l_string.
          l_string = lw_answer_ids-line.
          CALL METHOD IR_SURVEY_VALUES->DYNAMIC_ITEMS_DELETE
            EXPORTING
              IT_DYNAMIC_ITEMS       = lt_dynamic_delete
        ENDIF.
    ****Add dynamic answers
        IF NOT lt_add_items[] IS INITIAL.
          CALL METHOD IR_SURVEY_VALUES->DYNAMIC_ITEMS_ADD
            EXPORTING
              IT_ADD_ITEMS = lt_add_items
        ENDIF.
        CLEAR l_xml.
        CLEAR l_xml_hex.
        CALL METHOD IR_SURVEY_VALUES->UPDATE_VALUES_XML
          IMPORTING
            E_PUBLIC_VALUES_XML     = l_xml
            E_PUBLIC_VALUES_XML_HEX = l_xml_hex
          EXCEPTIONS
            ERROR_IN_GENERATION     = 1
            others                  = 2
        IF SY-SUBRC <> 0.
    *     MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *                WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
        ENDIF.
    ****Needed coding to refresh the html
        ASSIGN (lc_field_for_reload) TO <fs_reload_html>.
        IF sy-subrc EQ 0.
          <fs_reload_html> = 'X'.
        ENDIF.
    </b>
      ENDIF.
    ENDFUNCTION.
    Hope this helps.
    Best Regards!
    Gonzalo Milla Millá

  • Add Question dynamically in crm survey

    How to add the question dynamically in crm survey?
    I checked the two class CL_CRM_SVY_BUILDER and  CL_CRM_SVY_DOM.
    IN htis method Insert_question method is there.
    But how to use this method. What value should we pass in node.?
    If anybody knows about it, then please let me know.

    HI Dezpo,
    Thanks a lot for replying.
    I had checked the updated <b>SAP Note 834573</b> -Interactive Forms based on Adobe software: Acrobat/Reader version, which states that:
    For SAP Interactive Forms by Adobe, you require the following:
    Adobe Acrobat as of Version 7.0.9
    Adobe Reader as of Version 7.0.9
    <b>Important:</b>
    Note that you can only have limited use of Reader 8.0 for forms that, at runtime, are integrated in a WebDynpro application through the xACF technology (Active Components Framework). In this runtime environment, Reader 8.0 currently only supports static interactive forms. If you are using <b>dynamic interactive PDF forms</b>, we recommend that you use <b>Reader 7.0.9.</b> In the application, you can use parameters, or you can call methods, to determine whether you want to create a static or dynamic PDF form.
    I tried with the reader versions - 7.0.7,  7.0.9 and 8.01, but it doesn't work for either of them.
    Regards,
    Siddhartha Jain

  • Dynamic Scripting for Call Center Surveys

    Hi All,
    I need to create dynamic scripting for Call Centres. Any idea how dynamic scripting can be done.
    Thanks a lot.
    Amiga

    Hi Raja,
    Basically, there should be a provision to create/modify a transaction and questions based on the response provided. So if a question is asked in a survey and the response is "Yes", the next question should be different to the one for a "No" answer. Similarly there should be a provision to create actions based on responses.
    Hope this makes it a bit clearer.
    Thanks
    Amiga

  • Dynamic Listbox Items in Survey

    Hi,
    in a survey I use listboxes. These listboxes have to be filled dynamic from a customizing-table. I wanted to do this within the PBO-function, that is assigned to the survey.
    I thought I can do this with method DYNAMIC_ITEMS_ADD in class CL_CRM_SVY_VALUES but the listbox does not changes.
    Any ideas?
    TIA
    Adrian Ranfft

    Simple but efficient.
    One has to choose "dynamic list box" in the survey-suite...

  • "Dynamic List Box with Single Selection" Survey Suite in CRM 6.0

    Hi
    I am using CRM 6.0. There in Survey Suite there are 2 answering options "Dynamic List Box with Single Selection" & "Dynamic List Box with Multiple Selection". I am able to make out, how we can assign values to this. I have seen example "Example_Dynamic_survey" also.
    I believe we have to use programming for populating this. But how do we have to carry that out.
    Thanx and Regards
    Hitesh

    Hi Hitesh,
    There is no need of programming for populating values for Answer category 'List Box with Single Selection' or 'List Box with Multiple Selection'. You have to follow the following steps to populate values for those:
    - In the Answer Category select List Box with Single Selection from drop down list
    - Then on left hand side tree, right click on Answer and select Insert Answer Option (Answer->Insert Answer Option)
    - Then on right side, provide Text for the answer (value)
    - To add more values, repeat the process Answer->Insert Answer Option and providing text for those answers in the right side.
    Similarly you can populate values for 'List Box with Multiple Selection' also.
    This has to be done in the transaction CRM_SURVEY_SUITE.
    Hope this is clear to you
    regards
    Srikantan

Maybe you are looking for

  • Error while extracting Vendor Data from R/3 system

    Hi all, I am trying to extract vendor data from R/3(ECC6.0) system to XI using Tcode MDM_CLNT_EXTR. already I have maintained partner profile for the same. I have given the necessary details like Creditor_extract,Target System and Distribution Mode a

  • Production order release with batch management

    Dear All Our company are going to use batch managment. But someone told us the production order cannot be released if the component with batch managment is missing (requirment is lower than stock). Is that true?

  • WLS with Cocoon

    Has anyone tried using Apache's Cocoon for managing web publishing? I've has a go with Xalan and Xerces, and been pleased with these to date. I've now come across Apache's Cocoon, and would be interested to here the opinions of anyone who has used it

  • TS3988 ICloud

    On my IPhone 4s when I try to connect to my ICloud it says the maximum number of free accounts have been activated on this IPhone. What should I do?

  • Using OSX lion and I created an aim account but ichat will not let me login and says my password or username is incorrect!?

    I have created an AIM account on my computer. When I go to sign into Ichat it does not let me sign in. It says my username/password is incorrect. Any help would be appreciated.