Cl_gui_alv_grid check input Data

HI,
I have a problem trying to implement an ALV with editable cells using  cl_gui_alv_grid class.
My problem is : how to check input data ?
More precisely, in field catalog, I can specify an control table and a control field for each ALV column. If I do so, a search is displayed for the corresponding field and if I choose a value not available in this serach help, an error popup message is displayed and the cell in error is colored with a red line.
IT works perfectly for undepdant fields.
I try to do the same for field DISPO of table MARC displayed in my ALV. The sytem display appropriate serach help but alaways disaply an error message telling that "DISPO has not been found for plant ..." and it does not found the appropraite valeu of field WERKS/PLANT. HOw to correct this problem. A precision : the field WERKS is part of displayed column and is filled with a correct value but the link is not done.
Thanks for help
Regards
Morgan

Check the sample programs
BCALV_EDIT_01 - Editabale ALV
BCALV_EDIT_02 - Edit, save and F4 help
BCALV_EDIT_03 - Events handled
BCALV_EDIT_04
BCALV_EDIT_05
BCALV_EDIT_06
BCALV_EDIT_07
BCALV_EDIT_08

Similar Messages

  • Date picker for af:inputDate   is not picking up the correct input date

    view source:
    <af:inputDate value="#{bindings.DateField.attributeValue}" label="#{bindings.DateField.hints.label}"
    required="#{bindings.DateField.hints.mandatory}"
    valueChangeListener="#{pageFlowScope.CollectApplicantInformation.datesItemChanged}"
    columns="#{bindings.DateField.hints.displayWidth}" shortDesc="#{CustomTooltip[DateField]}"
    autoSubmit="true" helpTopicId="AppDt" id="DateField" simple="true">
    <f:validator binding="#{bindings.DateField.validator}"/>
    *<f:converter converterId="CustomConverter"/>*
    </af:inputDate>
    Here I am not using <af:ConvertDateTime> insted using customConverter, so what code changes do I need to make sure the date picker always picks the already existind date in the inputDate rather picking the current date?
    Here is my CustomConverter.java
    CustomConverter.java
    public class CustomConverter extends DateTimeConverter implements ClientConverter, Converter
    public Object getAsObject(FacesContext context, UIComponent component, String value)
    String dataType = (String) resolveExpression("#{bindings." + component.getId() + ".attributeDef.javaType.name}");
    if (dataType != null && !dataType.equalsIgnoreCase("oracle.jbo.domain.Date") && !dataType.equalsIgnoreCase("oracle.jbo.domain.Timestamp"))
    String test = null;
    if (context == null || component == null)
    throw new NullPointerException();
    if (value != null)
    // To solve DB transaction dirty issue, Check isEmpty and return null.
    if (value.isEmpty())
    return null;
    // the "value" is stored on the value property of the component.
    // The Unified EL allows us to check the type
    ValueExpression expression = component.getValueExpression("value");
    if (expression != null)
    Class<?> expectedType = expression.getType(context.getELContext());
    if (expectedType != null)
    System.out.println("expectedType Value:::" + expectedType.getName());
    // try to convert the value (Object) to the TYPE of the "value" property
    // of the underlying JSF component
    try
    return TypeFactory.getInstance(expectedType, value);
    catch (DataCreationException e)
    String errorMessage;
    if (expectedType.equals(CustomNumber.class))
    errorMessage = "You can enter only Numbers in this field";
    else
    errorMessage = e.getMessage();
    if (errorMessage != null)
    FacesContext ctx = FacesContext.getCurrentInstance();
    FacesMessage fm = new FacesMessage(FacesMessage.SEVERITY_ERROR, "Invalid Format" , errorMessage);
    ctx.addMessage(component.getClientId(), fm);
    catch (CustomDomainException e)
    int errorCode = e.getErrorMessageCode();
    String[] errorMessage = e.getErrorMessageParams();
    if (errorCode == 7 && errorMessage != null)
    String msg = "Invalid " + errorMessage[0];
    FacesContext ctx = FacesContext.getCurrentInstance();
    FacesMessage fm = new FacesMessage(FacesMessage.SEVERITY_ERROR, "Application Error: ", msg);
    ctx.addMessage(component.getClientId(), fm);
    catch (JboException e)
    Throwable cause = e.getCause();
    if (cause == null)
    cause = e;
    test = "not good format";
    throw e;
    return null;
    else
    return value != null? value: null;
    public String getAsString(FacesContext context, UIComponent component, Object value)
    return value != null? value.toString(): null;
    public String getClientLibrarySource(FacesContext context)
    return null;
    @Override
    public Collection<String> getClientImportNames()
    return Collections.emptySet();
    @Override
    public String getClientScript(FacesContext context, UIComponent component)
    String formatMask = (String) resolveExpression("#{bindings." + component.getId() + ".format}");
    if (formatMask != null)
    String dataType = (String) resolveExpression("#{bindings." + component.getId() + ".attributeDef.javaType.name}");
    if (dataType.equalsIgnoreCase("oracle.jbo.domain.Date") || dataType.equalsIgnoreCase("oracle.jbo.domain.Timestamp"))
    if (component == null)
    _LOG.severe("The component is null, but it is needed for the client id, so no script written");
    return null;
    // Add a JavaScript Object to store the datefield formats
    // on the client-side. We currently store the format string
    // for each and every field. It'd be more efficient to have
    // an array of formats, then store for each field the
    // index of the format, especially if we could delay outputting
    // these objects to when the <form> closes.
    String clientId = component.getClientId(context);
    if (clientId != null)
    // =-=AEW Only if Javascript...
    Map<String, Object> requestMap = context.getExternalContext().getRequestMap();
    // this fetch could be at the place where we append, but has been
    // moved ahead to optimize use of StringBuilder
    String jsPattern = getJSPattern(context, component);
    String loc = _getLocaleString(context);
    // FIX - figure out size!!!
    // 127 chars for javascript + length of jspattern + locale + 12 chars for
    // tranforming to name in the worst case.
    StringBuilder buff = new StringBuilder(139 + jsPattern.length() + loc.length());
    if (requestMap.get(_PATTERN_WRITTEN_KEY) == null)
    requestMap.put(_PATTERN_WRITTEN_KEY, Boolean.TRUE);
    // only create the _dfs object if it doesn't exist, so we don't
    // wipe out _dfs[xxx] values if we ppr the first date field on a
    // page with multiple date fields.
    buff.append("if(window['_dfs'] == undefined){var _dfs=new Object();}if(window['_dl'] == undefined){var _dl=new Object();}");
    buff.append("_dfs[\"");
    buff.append(clientId);
    buff.append("\"]=");
    buff.append(jsPattern);
    buff.append(";");
    buff.append("_dl[\"");
    buff.append(clientId);
    buff.append("\"]=");
    buff.append(loc);
    buff.append(";");
    return buff.toString();
    else
    LOG.severe("NULLCLINET_ID_NO_SCRIPT_RENDERED");
    return null;
    else
    return null;
    else
    return null;
    private String _getLocaleString(FacesContext context)
    Locale dateTimeConverterLocale = getLocale();
    if (dateTimeConverterLocale != null)
    Locale defaultLocale = RenderingContext.getCurrentInstance().getLocaleContext().getFormattingLocale();
    if (!(dateTimeConverterLocale.equals(defaultLocale)))
    String loc = dateTimeConverterLocale.toString();
    StringBuffer sb = new StringBuffer(2 + loc.length());
    sb.append("'");
    sb.append(loc);
    sb.append("'");
    return (sb.toString());
    return "null";
    @Override
    @Deprecated
    public String getClientConversion(FacesContext context, UIComponent component)
    String formatMask = (String) resolveExpression("#{bindings." + component.getId() + ".format}");
    if (formatMask != null)
    String dataType = (String) resolveExpression("#{bindings." + component.getId() + ".attributeDef.javaType.name}");
    if (dataType.equalsIgnoreCase("oracle.jbo.domain.Date") || dataType.equalsIgnoreCase("oracle.jbo.domain.Timestamp"))
    String jsPattern = getJSPattern(context, component);
    Map<String, String> messages = new HashMap<String, String>();
    if (jsPattern != null)
    Class<?> formatclass = formatMask.getClass();
    System.out.println("FormatClass::" + formatclass);
    System.out.println(" Format Mask : " + formatMask);
    // SimpleDateFormat sdfDestination = new SimpleDateFormat(formatMask);
    String pattern = formatMask; //getPattern();
    if (pattern == null)
    pattern = getSecondaryPattern();
    String key = getViolationMessageKey(pattern);
    Object[] params = new Object[]
    { "{0}", "{1}", "{2}" };
    Object msgPattern = getMessagePattern(context, key, params, component);
    //if hintFormat is null, no custom hint for date, time or both has been specified
    String hintFormat = _getHint();
    FacesMessage msg = null;
    String detailMessage = null;
    if (msgPattern != null)
    msg = MessageFactory.getMessage(context, key, msgPattern, params, component);
    detailMessage = XhtmlLafUtils.escapeJS(msg.getDetail());
    Locale loc = context.getViewRoot().getLocale();
    SimpleDateFormat formatter = new SimpleDateFormat(pattern, loc);
    java.lang.Object obj = resolveExpression("#{bindings." + component.getId() + ".attributeValue}");
    String databaseDate=null;
    if(obj!=null)
    databaseDate = obj.toString();
    DateFormat df = new SimpleDateFormat(pattern,loc);
    System.out.println("DateComponent input value :::::::::::::::::::::::::"+databaseDate);
    Date today;
    try {
    // System.out.println("Before Conversion::::::::::::"+df.parse(databaseDate).toString());
    if(databaseDate!=null)
    today = df.parse(databaseDate);
    else
    today = new Date();
    System.out.println("After Conversion Date :::::::::::::::::::::::::::::"+today.toString());
    //Date today = new Date();
    String dt = formatter.format(today);
    String exampleString = dt;
    String escapedType = XhtmlLafUtils.escapeJS(getType().toUpperCase());
    StringBuilder outBuffer = new StringBuilder();
    outBuffer.append("new TrDateTimeConverter(");
    outBuffer.append(jsPattern);
    // loc = getLocale();
    if (loc != null)
    outBuffer.append(",'");
    outBuffer.append(loc.toString());
    outBuffer.append("','");
    else
    outBuffer.append(",null,'");
    outBuffer.append(exampleString);
    outBuffer.append("','");
    outBuffer.append(escapedType);
    outBuffer.append("'");
    if (msgPattern != null || hintFormat != null)
    messages.put("detail", detailMessage);
    messages.put("hint", hintFormat);
    outBuffer.append(',');
    // try
    // JsonUtils.writeMap(outBuffer, messages, false);
    // catch (IOException e)
    // outBuffer.append("null");
    outBuffer.append(')'); // 2
    return outBuffer.toString();
    catch(ParseException e)
    System.out.println("Parse Exception :::::::::::::::::::::"+e);
    return null;
    else
    // no pattern-matchable date
    return null;
    else
    return null;
    else
    return null;
    protected String getJSPattern(FacesContext context, UIComponent component)
    String jsPattern = null;
    String datePattern = (String) resolveExpression("#{bindings." + component.getId() + ".format}");
    if (datePattern != null)
    String secondaryPattern = getSecondaryPattern();
    if (datePattern != _NO_JS_PATTERN)
    int length = datePattern.length() * 2 + 2;
    if (secondaryPattern != null)
    length = length + 3 + secondaryPattern.length() * 2;
    StringBuilder outBuffer = new StringBuilder(length);
    jsPattern = _getEscapedPattern(outBuffer, datePattern, secondaryPattern);
    else
    jsPattern = datePattern;
    return jsPattern;
    private static void _escapePattern(StringBuilder buffer, String pattern)
    buffer.append('\'');
    XhtmlUtils.escapeJS(buffer, pattern);
    buffer.append('\'');
    private static String _getEscapedPattern(StringBuilder buffer, String pattern, String secondaryPattern)
    if (secondaryPattern != null)
    buffer.append('[');
    _escapePattern(buffer, pattern);
    if (secondaryPattern != null)
    buffer.append(",'");
    XhtmlUtils.escapeJS(buffer, secondaryPattern);
    buffer.append("']");
    return buffer.toString();
    private String _getHint()
    String type = getType();
    if (type.equals("date"))
    return getHintDate();
    else if (type.equals("both"))
    return getHintBoth();
    else
    return getHintTime();
    public static Object resolveExpression(String pExpression)
    FacesContext facesContext = FacesContext.getCurrentInstance();
    Application app = facesContext.getApplication();
    ExpressionFactory elFactory = app.getExpressionFactory();
    ELContext elContext = facesContext.getELContext();
    ValueExpression valueExp = null;
    valueExp = elFactory.createValueExpression(elContext, pExpression, Object.class);
    return valueExp.getValue(elContext);
    private static final String _NO_JS_PATTERN = new String();
    private static final TrinidadLogger _LOG = TrinidadLogger.createTrinidadLogger(DateTimeConverter.class);
    // RenderingContext key indicating the _dateFormat object
    // has been created
    private static final String _PATTERN_WRITTEN_KEY = "org.apache.myfaces.trinidadinternal.convert.DateTimeConverter._PATTERN_WRITTEN";
    *Problem is if any input date componet is displaying other than current date then the date picker is always picking the current date rather existing date*
    Please suggest me where to make changes?
    Edited by: 858782 on Oct 3, 2011 7:43 AM
    Edited by: 858782 on Oct 3, 2011 11:44 PM

    I need custom date foramts to be applied for different inputDates which are not defined in <af:convertDateTime>
    Thanks
    Edited by: 858782 on Oct 13, 2011 4:59 PM

  • RSA1 going to shortdump, ERROR: Invalid GUI input data: Message no. 00123

    dear experts,
    while executing RSA1 going to short dump, ERROR: Invalid GUI input data: Message no. 00123 in sap-bi 7.0
    plz need help,
    regards.

    John,
    Those are the specs of the Software Components, the backend... As we mentioned before, download the latest SAPGUI version and install it in your PC...
    The latest SAPGUI can be downloaded from https://websmp204.sap-ag.de/support, go to Downloads, then "Browse the Navigation Area", on the left click "A-Z Index", then click on "G" and you'll see the "SAP GUI FOR WINDOWS" option, click on it...
    You can download it from here... Please notice your OSS user needs authorization to do so... Probably need to check with your Basis guys for this...
    Hope this helps.
    Luis

  • Adobe form not saving user-input data into saved pdf file

    Hi forumers,
    I'm a new abap developer and I'm tasked to create an interactive adobe form that will require the user to input data in the form.
    No data is passed and received from PDF, but PDF has to be u2018Fillableu2019. I am able to fill out the form but when I actually save the form, it will be saved as a blank form again. I've seen the relevance of the  LS_DOCPARAMS-FILLABLE = 'X' on this forum and I have incorporated it in my code. But how should I code the abap program to enable to save the user input as well into the form.
    DATA: GV_FMNAME TYPE FPNAME,
          LS_DOCPARAMS    TYPE SFPDOCPARAMS,
          LS_OUTPUTPARAMS TYPE SFPOUTPUTPARAMS.
    CALL FUNCTION 'FP_FUNCTION_MODULE_NAME'
      EXPORTING
        I_NAME                     = 'ZSC_ZRUFORREP'
    IMPORTING
       E_FUNCNAME                  = GV_FMNAME
    *   E_INTERFACE_TYPE           =
    *   EV_FUNCNAME_INBOUND        =
    CALL FUNCTION 'FP_JOB_OPEN'
      CHANGING
        IE_OUTPUTPARAMS       = LS_OUTPUTPARAMS
    EXCEPTIONS
       CANCEL                = 1
       USAGE_ERROR           = 2
       SYSTEM_ERROR          = 3
       INTERNAL_ERROR        = 4
       OTHERS                = 5
    IF SY-SUBRC <> 0.
    * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    LS_DOCPARAMS-FILLABLE = 'X'.
    LS_DOCPARAMS-DYNAMIC = 'X'.
    CALL FUNCTION GV_FMNAME
    EXPORTING
       /1BCDWB/DOCPARAMS        = LS_DOCPARAMS
    * IMPORTING
    *   /1BCDWB/FORMOUTPUT       =
    EXCEPTIONS
       USAGE_ERROR              = 1
       SYSTEM_ERROR             = 2
       INTERNAL_ERROR           = 3
       OTHERS                   = 4
    IF SY-SUBRC <> 0.
    * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    CALL FUNCTION 'FP_JOB_CLOSE'
    * IMPORTING
    *   E_RESULT             =
    EXCEPTIONS
       USAGE_ERROR          = 1
       SYSTEM_ERROR         = 2
       INTERNAL_ERROR       = 3
       OTHERS               = 4
    IF SY-SUBRC <> 0.
    * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    Thanks,
    dgrachee

    Not quite yet, I have to say...
    If you check the domain "FPINTERACTIVE", you'll see these values:
                   Print Form
    X     Interactive Form with Additional Usage Rights
    N     Interactive Form Without Additional Usage Rights
    F                                                                
    So, you are not providing "additional usage rights" (Adobe Form Credentials), meaning there could be a problem when you want to use those forms in a Production environment.

  • No batch input data for screen SAPMSSY3 0131

    Dear All,
    I have developed a report where i need to upload (old and new)incoterms,payment terms,document type  and update in the table ekko with my new values (incoterms,payment terms and document type).
    Problem :For this report i have uploaded the excel sheet and values are getting uploaded into my internal table.but when using bapi_agreement_maintain to update the ekko table ,in return table its showing No batch input data for screen SAPMSSY3 0131.
    Anyone please give the reason/solution to solve the problem.
    Regards,
    Bhavani.

    Hi,
    screen SAPMSSY3 0131 is the debugging screen so if you have any break-points in any of the transactions remove the breakpoint and check.
    Basically this BAPI is calling a transaction to execute a transaction in no dialog mode so if you have break-points in any of those program you will face this issue.
    Regards,
    Himanshu

  • How to compare the current date to an inputed date?

    I am having a validation to check if the date is not After the current System Date?
         public String getDate_trans()
             try {
             Date x=new Date();<<Get the current Date
             Date date=new Date();
             DateFormat formatter ;
             formatter = new SimpleDateFormat("yyyy-MM-dd");
             date = (Date)formatter.parse(date_trans); <<<Inputed Date
                   System.out.println(date);
                   System.out.println(x);
                   if(date<x)
                        System.out.print("Date is Valid");
                                                   else
                                                     System.out.print("Date is invalid");
             catch (ParseException e)
        {System.out.println("Exception :"+e);    }
         return date_trans;
         }

    tr3k wrote:
    I dunno what to method to use in there...I'm so sorry...The closest method that I could use I think is the compareTo...but I dunno how I can use that to compare using greater than or less than.....Read the docs for that method. READ THE DESCRIPTION. What do you not understand about that?
    And there are two other methods that are even simpler. You haven't looked closely enough.

  • ALV CHECK CHANGED DATA WITH REUSE_ALV_GRID_DISPLAY

    HELLO  EVERY-ONE.
        I have a question that how to check changed data in ALV. I know we can use CHECK_CHANGE_DATA Method in OO, and how to check it in REUSE_ALV_GRID_DISPLAY <b>without double click</b> ?

    Try this code , it will give the solution that has been solved with funtion module
    REPORT zalvprg1.
    TYPE-POOLS: slis.
    TABLES: ekko.
    DATA : it_list_top_of_page TYPE slis_t_listheader,
           it_list_end_of_page TYPE slis_t_listheader,
           it_events           TYPE slis_t_event,
           wa_line             TYPE slis_listheader,
           wa_event            TYPE slis_alv_event.
    DATA :  it_fieldcat  TYPE slis_t_fieldcat_alv ,
            wa_fieldcat  TYPE slis_fieldcat_alv.
    TYPES :BEGIN OF ty_ekko,
           ebeln TYPE ebeln,
           bukrs TYPE bukrs,
           ernam TYPE ernam,
           bsart TYPE esart,
           waers TYPE waers,
           END   OF ty_ekko.
    TYPES :BEGIN OF ty_ekpo,
           ebeln TYPE ebeln,
           ebelp TYPE ebelp,
           matnr TYPE matnr,
           werks TYPE werks,
           menge TYPE bstmg,
           END   OF ty_ekpo.
    TYPES :BEGIN OF ty_marc,
           matnr TYPE matnr,
           werks TYPE werks_d,
           tranz TYPE tranz,
           herbl TYPE herbl,
           END   OF ty_marc.
    TYPES : BEGIN OF ty_show,
            old  TYPE i,
            new(10) TYPE c,
            END OF ty_show.
    TYPES : BEGIN OF ty_final,
           ebeln TYPE ebeln,
           bukrs TYPE bukrs,
           ernam TYPE ernam,
           bsart TYPE esart,
           waers TYPE waers,
           matnr TYPE matnr,
           werks TYPE werks,
           menge TYPE bstmg,
           END   OF ty_final.
    DATA: it_ekko  TYPE TABLE OF ty_ekko,
          it_ekpo  TYPE TABLE OF ty_ekpo,
          it_marc TYPE TABLE OF ty_marc,
          it_final TYPE TABLE OF ty_final,
          it_show  TYPE TABLE OF ty_show WITH HEADER LINE,
          wa_marc  TYPE ty_marc,
          wa_ekko  TYPE ty_ekko,
          wa_ekpo  TYPE ty_ekpo,
          wa_show  TYPE ty_show,
          wa_final TYPE ty_final.
    SELECT-OPTIONS: so_ebeln FOR ekko-ebeln.
    START-OF-SELECTION.
      PERFORM data_fetch.
      PERFORM alv_display.
    END-OF-SELECTION.
    *&      Form  data_fetch
          text
    -->  p1        text
    <--  p2        text
    FORM data_fetch .
      SELECT ebeln
             bukrs
             ernam
             bsart
             waers
             FROM ekko
             INTO TABLE it_ekko
             WHERE ebeln IN so_ebeln.
      SELECT ebeln
             ebelp
             matnr
             werks
             menge
             FROM ekpo
             INTO TABLE it_ekpo
             FOR ALL ENTRIES IN it_ekko
             WHERE ebeln = it_ekko-ebeln.
      LOOP AT it_ekko INTO wa_ekko.
        wa_final-ebeln = wa_ekko-ebeln.
        wa_final-bukrs = wa_ekko-bukrs.
        wa_final-ernam = wa_ekko-ernam.
        wa_final-bsart = wa_ekko-bsart.
        wa_final-waers = wa_ekko-waers.
        READ TABLE it_ekpo INTO wa_ekpo WITH KEY ebeln = wa_ekko-ebeln.
        IF sy-subrc EQ 0.
          wa_final-matnr = wa_ekpo-matnr.
          wa_final-werks = wa_ekpo-werks.
          wa_final-menge = wa_ekpo-menge.
        ENDIF.
        APPEND wa_final TO it_final.
      ENDLOOP.
    ENDFORM.                    " data_fetch
    *&      Form  alv_display
          text
    -->  p1        text
    <--  p2        text
    FORM alv_display .
      REFRESH it_fieldcat.
      PERFORM field_cat USING 'EBELN' 'PURCHASE ORDER NO'.
      PERFORM field_cat USING 'BUKRS' 'COMPANY CODE'.
      PERFORM field_cat USING 'ERNAM' 'USERNAME CREATED'.
      PERFORM field_cat USING 'BSART' 'DOCUMENT TYPE'.
      PERFORM field_cat USING 'WAERS' 'CURRENCY'.
      PERFORM field_cat USING 'MATNR' 'MATERIAL NO'.
      PERFORM field_cat USING 'WERKS' 'PLANT '.
      PERFORM field_cat USING 'MENGE' 'QUANTITY'.
      CLEAR it_list_top_of_page.
      PERFORM f009_list_header .
      CLEAR it_list_end_of_page.
      PERFORM f009_list_footer.
      PERFORM f012_grid_function_module TABLES it_final USING it_fieldcat.
    ENDFORM.                    " alv_display
    **&      Form  f009_list_header
          text
    FORM f009_list_header.
    **..... Header detail for ALV
      wa_event-name = text-001. "TOP_OF_PAGE
      wa_event-form = text-002. "F010_TOP_OF_PAGE
      APPEND wa_event TO it_events.
      CLEAR wa_event.
      CLEAR wa_line.
      wa_line-typ  = text-003.   "S
      wa_line-key  = text-004.   "9 - BLOCKER REPORT
      wa_line-info = text-005.
      APPEND wa_line TO it_list_top_of_page.
      CLEAR wa_line.
    ENDFORM.                    "f009_list_header
    *&      Form  f010_top_of_page
          text
    FORM f010_top_of_page.
    **......The form 'F010_TOP_OF_PAGE' cannot be called directly
      CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
        EXPORTING
          it_list_commentary = it_list_top_of_page.
    ENDFORM.                    "f010_top_of_page
    *&      Form  field_cat
          text
         -->W_FIELD    text
         -->W_COL      text
    FORM field_cat  USING    w_field
                             w_col.
      CLEAR wa_fieldcat.
      wa_fieldcat-fieldname = w_field.
      wa_fieldcat-seltext_l = w_col.
      wa_fieldcat-outputlen = 15.
      APPEND wa_fieldcat TO it_fieldcat.
    ENDFORM.                    " field_cat
    *&      Form  f012_grid_function_module
          text
    FORM f012_grid_function_module TABLES w_tab USING  w_fcat TYPE any.
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
          i_callback_program       = sy-repid
          it_fieldcat              = w_fcat
          i_callback_pf_status_set = 'F010_PF_STATUS'
          i_callback_user_command  = 'USER_COMMAND'
          it_events                = it_events[]
        TABLES
          t_outtab                 = w_tab
        EXCEPTIONS
          program_error            = 1
          OTHERS                   = 2.
      IF sy-subrc IS NOT INITIAL.
        MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
        WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      ENDIF.
    ENDFORM.                    "f011_grid_function_module
    *&      Form  f009_list_footer
          text
    FORM f009_list_footer.
    **..... Footer  detail for ALV
      CLEAR wa_event.
      CLEAR wa_line.
      wa_event-name = text-007. "BOTTOM_OF_PAGE
      wa_event-form = text-008. "F010_BOTTOM_OF_PAGE
      APPEND wa_event TO it_events.
      wa_line-typ  = text-009.   "S
      wa_line-key  = text-010.   "9 - BLOCKER REPORT
      wa_line-info = text-011.
      APPEND wa_line TO it_list_end_of_page.
      CLEAR wa_line.
    ENDFORM.                    "f009_list_footer
    *&      Form  f010_top_of_page
          text
    FORM f010_bottom_of_page.
    **......The form 'F010_TOP_OF_PAGE' cannot be called directly
      CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
        EXPORTING
          it_list_commentary = it_list_end_of_page.
    ENDFORM.                    "f010_end_of_page
          FORM user_command                                             *
    FORM user_command USING r_ucomm LIKE sy-ucomm
                               rs_selfield TYPE slis_selfield.
      CASE r_ucomm.
        WHEN '&IC1'.
          IF rs_selfield-fieldname = 'MATNR'.
            SET PARAMETER ID 'MAT' FIELD rs_selfield-value.
            SET PARAMETER ID 'WRK' FIELD '1000'.     "<- Your plant here
            CALL TRANSACTION 'MD04' AND SKIP FIRST SCREEN.
           call transaction 'MM02' and skip first screen.
          ENDIF.
          IF rs_selfield-fieldname = 'WERKS'.
            PERFORM disp_marc USING rs_selfield.
          ENDIF.
        WHEN '&CHANGE'.
          IF rs_selfield-fieldname = 'MENGE'.
            PERFORM disp_alter USING rs_selfield.
          ENDIF.
      ENDCASE.
    ENDFORM.                    "callback_ucomm
    *&      Form  f010_pf_status
          text
         -->RT_EXTAB   text
    FORM f010_pf_status USING rt_extab TYPE slis_t_extab.
      SET PF-STATUS 'ZS_ALV'.
    ENDFORM.                    "F010_PF_STATUS
    *ENDFORM.                    "dialog
    *&      Form  f002_FIELDCAT
          text
         -->P_0512   text
         -->P_0513   text
         -->P_0514   text
    FORM f002_fieldcat  USING   w_field
                                w_col
                                w_change   .
      CLEAR wa_fieldcat.
      wa_fieldcat-fieldname = w_field.
      wa_fieldcat-seltext_l = w_col.
      wa_fieldcat-outputlen = 15.
      wa_fieldcat-edit      = w_change.
      wa_fieldcat-input     = 'X'.
      APPEND wa_fieldcat TO it_fieldcat.
    ENDFORM.                    " f002_FIELDCAT
    *&      Form  disp_marc
          text
         -->P_W_SELFIELD  text
    FORM disp_marc  USING    rs_selfield TYPE slis_selfield.
      SELECT   matnr
               werks
               tranz
             FROM  marc INTO TABLE it_marc
             WHERE werks = rs_selfield-value.
      REFRESH it_fieldcat.
      PERFORM field_cat USING 'MATNR' 'MATERIAL NUMBER'.
      PERFORM field_cat USING 'WERKS' 'PLANT '.
      PERFORM field_cat USING 'TRANZ' 'INTER-OPERATION TIME'.
    PERFORM field_cat USING 'HERBL' 'STATE OF MANUFACTURE'.
      PERFORM f012_grid_function_module TABLES it_marc USING it_fieldcat .
      IF sy-subrc NE 0.
        MESSAGE 'MATERIAL DETAILS' TYPE 'S'.
      ENDIF.
    ENDFORM.                    " disp_marc
    *&      Form  disp_alter
          text
         -->P_RS_SELFIELD  text
    FORM disp_alter  USING    rs_selfield TYPE slis_selfield.
      DATA:l_var(10) TYPE c.
      REFRESH : it_fieldcat,
                it_show.
      it_show-old = rs_selfield-value.
      CLEAR it_show-new.
      APPEND it_show TO it_show.
      PERFORM field_cat  USING 'OLD'  'OLD QTY (MENGE)'.
      PERFORM f002_fieldcat USING 'NEW' 'NEW QTY (MENGE)' 'X'.
      CALL FUNCTION 'REUSE_ALV_POPUP_TO_SELECT'
        EXPORTING
          i_title            = 'CHANGES IN MATERIAL'
          i_tabname          = 'IT_SHOW'
          it_fieldcat        = it_fieldcat
          i_callback_program = sy-repid
        TABLES
          t_outtab           = it_show
        EXCEPTIONS
          program_error      = 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.
      l_var = it_show-new.
      READ TABLE it_final INDEX rs_selfield-tabindex INTO wa_final.
      wa_final-menge = l_var.
      MODIFY it_final INDEX rs_selfield-tabindex  FROM wa_final TRANSPORTING menge .
      PERFORM alv_display.
    ENDFORM.                    " disp_alter
    Reward points for the same
    Regards,
    Shanmuga perumal.L

  • EPM add-in problem with input data,retrieve dimension or members

    Hello everyone,
    I am trying to use data write back (input data) function with EPM add-in in Dashboards. I managed successfully bringing results of an EPM report. I've created a local connection at EPM, and created a  connection at data manager for"Planning and consolidation, version for SAP netweaver platform". And i could get the values via refreshing connection at preview mode, so far so good. Now i want to add a connection which will serve as data write back function to a specific BPC cube. The problem is,  I can retrieve data source name and environment name. But when i click to retrieve model names, it retrieves empty results. The problem exist in, "retrieve dimension" and"retrieve dimension members" functionalities too. I realized that i could retrieve model names for only one specific environment, but even i could get these, when i try to retrieve "cell definition" i am facing an error. You can see related screenshots below.
    I am using Dashboards 4.1 SP2,  EPM connector 10 SP 17.  I created two connections as local and business planning and consolidation for netweaver. I selected same environment and model name for these connections. Neither did work.  Any ideas?
    Update: The reason i could see some model names and some others not  was i didn't specified the model as data source at: 
    Enable BPC Model as reporting data source
               Logon to BPC 10.0 NW web client -> Planning and Consolidation Administration -> Dimensions and Models -> Models -> Select the Model -> Edit -> Features Used with the Model -> mark check box 'Use as Source of Data' -> Save.
    I will update here if i could find a solution for the other issue. (First screenshot).
    Update_2: The problem was occuring because i wasn't connecting to transient cube, created automatically by applying the step at Update_1. While creating a local connection, you shouldn't connect to the original cube, but to the transient one instead to use input data functionality.
    Regards,
    Onur
    Message was edited by: Onur Göktaş

    HI,
    I believe it is definitely the support pack. I posted an issue on this forum and I saw your post.  Your issue is very similar to mine. I saw Andy's reply to you about the SP 18 and looked into it.  Thanks Andy.  SP 18 resolved my issue.  See my post.  Kathy

  • Error: No batch input data for screen SAPMZVKDIALOGDEMO 1000 Help Needed

    Hi Experts!
    I wrote a program for BDC. I am attaching the code herewith. When i am trying to process the session in SM35, i was getting the error: No batch input data for screen SAPMZVKDIALOGDEMO 1000. Can anyone please tell me, what am i doing wrong.
    Thanks.
    REPORT  zvkbdcdemo01.
    DATA: bdc_tab LIKE bdcdata OCCURS 6 WITH HEADER LINE.
    DATA: session LIKE apqi-groupid VALUE 'Session #1'.
    CALL FUNCTION 'BDC_OPEN_GROUP'
      EXPORTING
        client                    = sy-mandt
    *   DEST                      = FILLER8
        group                     = session
    *   HOLDDATE                  = FILLER8
    *   KEEP                      = FILLER1
        user                      = sy-uname
    *   RECORD                    = FILLER1
    *   PROG                      = SY-CPROG
    * IMPORTING
    *   QID                       =
    * EXCEPTIONS
    *   CLIENT_INVALID            = 1
    *   DESTINATION_INVALID       = 2
    *   GROUP_INVALID             = 3
    *   GROUP_IS_LOCKED           = 4
    *   HOLDDATE_INVALID          = 5
    *   INTERNAL_ERROR            = 6
    *   QUEUE_ERROR               = 7
    *   RUNNING                   = 8
    *   SYSTEM_LOCK_ERROR         = 9
    *   USER_INVALID              = 10
    *   OTHERS                    = 11
    IF sy-subrc <> 0.
    * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    PERFORM fill_bdc_tab.
    CALL FUNCTION 'BDC_INSERT'
      EXPORTING
        tcode                  = 'ZVKTR001'
    *   POST_LOCAL             = NOVBLOCAL
    *   PRINTING               = NOPRINT
    *   SIMUBATCH              = ' '
    *   CTUPARAMS              = ' '
      TABLES
        dynprotab              = bdc_tab
    * EXCEPTIONS
    *   INTERNAL_ERROR         = 1
    *   NOT_OPEN               = 2
    *   QUEUE_ERROR            = 3
    *   TCODE_INVALID          = 4
    *   PRINTING_INVALID       = 5
    *   POSTING_INVALID        = 6
    *   OTHERS                 = 7
    IF sy-subrc <> 0.
    * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    CALL FUNCTION 'BDC_CLOSE_GROUP'
    * EXCEPTIONS
    *   NOT_OPEN          = 1
    *   QUEUE_ERROR       = 2
    *   OTHERS            = 3
    IF sy-subrc <> 0.
    * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    *&      Form  fill_bdc_tab
    *       text
    FORM fill_bdc_tab.
      REFRESH bdc_tab.
      PERFORM populate_bdc_tab USING:
      '1' 'SAPMZVKDIALOGDEMO' '1000',
      ' ' 'SFLIGHT-CARRID' 'LH',
      ' ' 'SFLIGHT-CONNID' '0400',
      ' ' 'SFLIGHT-FLDATE' '07/07/2007',
      ' ' 'SFLIGHT-PRICE' '1982',
      ' ' 'SFLIGHT-CURRENCY' 'EUR',
      ' ' 'SFLIGHT-PLANETYPE' 'A310-300',
      ' ' 'BDC_OKCODE' 'CREA'.
    ENDFORM.                    "fill_bdc_tab
    *&      Form  POPULATE_BDC_TAB
    *       text
    *      -->FLAG       text
    *      -->VAR1       text
    *      -->VAR2       text
    FORM populate_bdc_tab USING flag var1 var2.
      CLEAR bdc_tab.
      IF flag = '1'.
        bdc_tab-program = var1.
        bdc_tab-dynpro = var2.
        bdc_tab-dynbegin = 'X'.
      ELSE.
        bdc_tab-fnam = var1.
        bdc_tab-fval = var2.
      ENDIF.
      APPEND bdc_tab.
    ENDFORM.                    "POPULATE_BDC_TAB

    This normally means that you are trying to insert data on a screen for which a particular field is not available.
    So check screen number, screen fields and report name. In case of screen fields, use F1, F9 (technical information), and check the name of the screen field for batch processing (all the way at th bottom of the pop-up). This can differ from actual name of the screen field.
    If all this is ok, try to create a recording of the transaction with SM37.

  • Error with bc4j input date tag running a Jsp file.

    when im running the bc4j input date tag in a form, a jscript error comes up (object not found error)-> When i pick the date control. I have already checked the cabo directory and all files is there. The same enviroment in other developers PC�s works well.
    Have you got that error?
    how can i fix it?
    The calendar never comes up.
    Thank u

    The none value is only shown when the field accepts null values.

  • Input data into dynamic calc in Planning forms

    Hi guys,
    Have someone tried to combine these two requirements:
    1.     to have upper level members dynamic calc
    2.     to give users the ability to input data into those upper level members through Planning forms.
    I need to do that in order to pass inputted values into HBR, and allocate those values to the leaf level across multiple dimensions. I need those members dynamic calc because otherwise I would need to aggregate data across 7 dimensions and that takes too long. Those allocations are suposed to happen constantly and are the main purpose of application.
    I know you can have dummy stored members that correspond the uper level dynamic members, but then the user will have input forms without current data and will be required to check reports/forms with dynamic calc members prior to updating data.
    I wonder if it is a realistic task to change jsp files that generate those forms, so that data can be inputed into the form, but instead of passing it to Essbase cube to send it to relational database.
    P.S.
    This is related to the thread I opened about optimizing recalculation time:
    Recalculatiion takes much longer than initial calculation
    I received a lot of valuable advices that would definitely work in other situations, but in my case they seem to contradict either user concurrent access or performance requirements.
    Thanks a lot!
    Dmitry

    Hi Glenn,
    I think i found a workaround for this, or may be i am missing something. I will replicate my hierarchies so that one hierarchy will have uper level stored members, and another dynamic calc. Once user loads the form it will run on-load script that will copy data from corresponding dynamic calc to stored slice. The updated data will be alocated to the leaf level, but will never be aggregated. Since reporting is done from ASO cube i only care about the leaf level and current selection in the form.
    Thanks!

  • Incoming IDOC Error "No batch input data from the screen SAPMV45A 4001"

    Hello ,
    The Incoming IDOC with Message type 'ORDERS' is triggering the error message "No batch input data from the screen SAPMV45A 4001" with message no 00344 . There is an SAP note 785000 to handle this type of error message which has been already implemented. Still we are encountering few IDOC error's  at the time of sales order creation. The IDOC reaches status 51 throwing the error which is again reprocessed through BD87 .
    We are unable to replicate the similar scenerio in Development & Testing systems as it works fine.
    Can any one kindly advise how to eliminate the error "No batch input data from the screen SAPMV45A 4001" message at the time of Incoming IDOC processing.
    Thanks in advance.
    Best Regards
    Sateesh

    Dear Sateesh
    Check this link where the same topic was discussed
    [ VA01/VA02: batch-input error in IDoc processing|http://www.sapfans.com/forums/viewtopic.php?f=21&t=313032]
    thanks
    G. Lakshmipathi

  • 'Input data length not a multiple of blocksize' error in CUP

    Hello All
    I receive the error below when trying to configure CUP. I got this error whilst trying to define the password for the RFC user created in the Connector screen in CUP. CUP doesn't accept the SAP password maintained in SU01. CUP only allows a 4 character password but SU01 is configured to only accept 8 characters. Full error message below.
    'com.virsa.ae.commons.utils.StringEncrypter$EncryptionException: Input data length not a multiple of blocksize.'
    Can anyone shed any light on this?

    Hi All,
    This issue is in Version 5.3 SP 7.1 of CUP. It occurs when we are trying to change the password for the CUP connector.
    Please note that testing the connectors within the Content Administrator --> Maintain JCO Connections screens works fine and the risk analysis from RAR also works without issue. However, whenever we attempt to enter the password for CUP connecotr setup, it returns an error saying "Action Failed" with the 'Input data length not a multiple of blocksize' error showing in the trace logs.
    We seem to be able to store a password of 4 characters e.g. 1234 but this then naturally fails the connection test.
    Can anyone suggest a parameter setting to check or a resolution for this particular issue?
    Thanks,
    Simon

  • Date Format in Input Date Component

    Hi,
    I am using JDev 11.1.1.3.0. I have few Input Date component in the form. I need to display the selected date in upper case. Basically the month in upper case.
    Currently it displays '01-Aug-2012'. I need it to be displayed as '01-AUG-2012'.
    Tried adding format but still the month is displayed in initial caps. Really appreciate if someone can help me in fixing this issue.
    Thanks
    SR

    There is no format to archive this. Check http://docs.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html which give you all format patterns used by the inptutDate component.
    I have not tried this, but you should be able to use a converter, which you have to write yourself, to make the month uppercase.
    Writing your own converter is easy, for a tutorial check http://docs.oracle.com/javaee/5/tutorial/doc/bnaus.html
    Timo

  • Trans Code to check the Date of Termination in Setup Tables-Very Urgent!!

    Hello BW Gurus,
          I need to check the date of termination I have given while filling up the setup tables to verify when my delta loads would stop running. NPRT transaction code just gives me the time it took to fillup the tables but the date of termination is given as zero's, so please can someone let me know how to see that.
    Thanks in advance,
    Anjali
    Message was edited by: Anjali

    Hi,
    If I understood it right, you wanted to predict when the actual date of termination would occur or you wanted to know what parameter you did input on the job that is now running?
    <b>Case 1:</b>
    As far as I know, that Info cannot exactly be determined since it will depend on various factors e.g. CPU speed, I.O. Speed, Amount of data to be process etc. etc. which I dont think SAP could predict as exact as possible (<i>if ever an option was provided</i>).
    During the early stages of our project, we did that but we base the run time from history. Meaning, we always log (on top of existing <i>SAP Job Logs</i>) the run times in Excel and we somehow use that data to predict the actual Date of Termination.
    <b>Case 2:</b>
    In case you wanted to see the parameter while its running, I have no suggestion but for you to debug the currently running program.
    In <b>SM51</b>, click the Active job and choose menu Program/Mode->Debugging. On the fields on the lower left portion, type <b>RMCSNEUA-DATUM</b> (got this value when you execute the Table Setup, say OLI9BW; Press F1 on the date of termination field) this would give you the actual date you have provided. 
    If I have helped, please grant points...
    --Jkyle

Maybe you are looking for

  • Does Microsoft Support RemoteApp on the IPAD

    We have several thousand computers and Ipads, but I cant seem to see how to get my published RemoteApps to operate. I do not want to operate in a full desktop I dont want to buy Citrix I would like to use RemoteApp included with RDS on an Ipad (and A

  • Help in Update Statement

    Hi All, I would like to create an update statement which produces the desired result(below) but find that the update statement I have created does not perform. <pre> CREATE TABLE RACE( S_ID NUMBER, D_PID VARCHAR2(15), OCCURENCE NUMBER); </pre> <pre>

  • Can't open any libraries on start-up

    Won't open any iPhoto libraries; says needs latest update (assume this is 3.5.1) and my version is 3.4.5.  SW update history says this was downloaded on 11-16-13 and therefore won't let me update from app store site.  caught in a loop.

  • Can I found out wether or not a Transaction has a Gui ?

    Hello Everybody, I have actually one question. I need to know when I'm executing a Transaction to know wether or not this transaction has a GUI. Well, I think this's possible but what I don't know is, if there's mechanism where I can ask the SAP-Syst

  • Installer freezes on Macbook Pro

    Hi, I am trying to install Creative Cloud on my MacbookPro on OSX 10.7.5, downloaded the installer, started it but nothing happens. Frozen with a window saying "Initializing installer". I have killed the process but it would not launch again. I have