cancel
Showing results for 
Search instead for 
Did you mean: 

Clarification on oss note 886703 for Date Format Error

Former Member
0 Kudos

Hello Experts. Yann was very helpful in directing me to oss note 886703 which address my issue in detail. I need some help in understanding the note. After applying the note and setting a couple of parameters there seems to be an additional step which is not clear. It reads as follows:

a) Open the saplbbp_sc_ui_its120.html template and implement the changes as specified in the <b>saplbbp_sc_ui_its_12.txt</b> template.

I checked in se80 and in the note and cannot find the .txt file. Can someone please explain. Thank you

Accepted Solutions (1)

Accepted Solutions (1)

yann_bouillut
Active Contributor
0 Kudos

Hi Jocelyne,

the txt file is attached to the oss note (attachment tab of the oss note) !

It contains the code you have to implement in the SE80 file

Kind regards,

Yann

Former Member
0 Kudos

Yann

Thank you so much for your response! Oh gosh! I do see it now. It has one single word "CONTEXT", that's it. Where do I apply that?

yann_bouillut
Active Contributor
0 Kudos

Hi Jocelyne,

This is because txt is not well interpreted by html

If you save as (right click) the file to your desktop and then rename it by chnaging the extension from .html to .txt, you will have the content :

CONTEXT

<input type="hidden" name="gs_scr_itmovr_h-line_sel" Value="" >

<script language="JavaScript1.2">

BEGIN OF INSERTION

var old_date = new Array(`gv_itmoverview_ctrl.lastvisible`);

`repeat with j from gv_itmoverview_ctrl.firstvisible

to gv_itmoverview_ctrl.lastvisible`

old_date[`j`] = "`gt_scr_itmovr_i-vper_start[j]`";

`end`

function verifydate(obj, index, description) {

var current_date = obj.value;

// identify month, date, year items within R/3 timestamp

var TIMESTAMP_R3 = "`TIMESTAMP_R3`";

var pos_day = TIMESTAMP_R3.indexOf("20");

var pos_month = TIMESTAMP_R3.indexOf("12");

var pos_year = TIMESTAMP_R3.indexOf("2005");

var date_identified = true;

if (pos_day == 0) {

pos_separator = TIMESTAMP_R3.substring(2, 3);

entered_day = current_date.substring(0, 2);

entered_separator_1 = current_date.substring(2, 3);

if (pos_month < pos_year) { // dmy

entered_month = current_date.substring(3, 5);

entered_separator_2 = current_date.substring(5, 6);

entered_year = current_date.substring(6, 10);

} else { // dym

entered_year = current_date.substring(3, 7);

entered_separator_2 = current_date.substring(7, 8);

entered_month = current_date.substring(8, 10);

}

} else if (pos_month == 0) {

pos_separator = TIMESTAMP_R3.substring(2, 3);

entered_month = current_date.substring(0, 2);

entered_separator_1 = current_date.substring(2, 3);

if (pos_day < pos_year) { // mdy

entered_day = current_date.substring(3, 5);

entered_separator_2 = current_date.substring(5, 6);

entered_year = current_date.substring(6, 10);

} else { // myd

entered_year = current_date.substring(3, 7);

entered_separator_2 = current_date.substring(7, 8);

entered_day = current_date.substring(8, 10);

}

} else if (pos_year == 0) {

pos_separator = TIMESTAMP_R3.substring(4, 5);

entered_year = current_date.substring(0, 4);

entered_separator_1 = current_date.substring(4, 5);

if (pos_month < pos_day) { // ymd

entered_month = current_date.substring(5, 7);

entered_separator_2 = current_date.substring(7, 8);

entered_day = current_date.substring(8, 10);

} else { // ydm

entered_day = current_date.substring(5, 7);

entered_separator_2 = current_date.substring(7, 8);

entered_month = current_date.substring(8, 10);

}

} else {

// date format unknown

date_identified = false;

}

if (date_identified) {

// verify that entered date is valid - if not and it gets to R/3 we may run into a big problem on this template

if ((entered_separator_1 == pos_separator) &&

(entered_separator_2 == pos_separator) &&

(entered_day >= 1) && (entered_day <= 31) &&

(entered_month >= 1) && (entered_month <= 12)) {

old_date[index] = current_date; // remember new value

} else {

obj.value = old_date[index]; // reset to old value

alert("`#INVALID_DATE` " + current_date + " `#FOR_POSITION` " + description);

}

}

}

END OF INSERTION

REPLACE SINGLE LINE

<input type="text" name="gt_scr_itmovr_i-vper_start[`j`]" value="`gt_scr_itmovr_i-vper_start[j]`" maxlength="17" size="10">

WITH (two lines)

<input type="text" name="gt_scr_itmovr_i-vper_start[`j`]" value="`gt_scr_itmovr_i-vper_start[j]`" maxlength="17" size="10" onchange="javascript:verifydate(this, `j`, '`

singleQuotFilterJS(doubleQuotFilterJS(gt_scr_itmovr_i-description[j]))`');">

Kind regards,

Yann

Former Member
0 Kudos

Yann, You are the BEST. Thank you so much for this very helpful response (i would have never figured it out)!!!!

Answers (0)