I want to know itunes work properly in windows 8.1
i want to know itunes work properly in windows 8.1????
Plz and my question
Hi JavierBalmaceda,
Welcome to the BestBuy forums! There is not one specifically stating "spanish" however all of them should have language packs already installed so you can select your language.
8.1 PRO(Retail)
http://www.bestbuy.com/site/windows-8-1-pro-windows/1805804.p?id=1219064878912&skuId=1805804&st=cate...
8.1 PRO ( for builders - 32 bit )
http://www.bestbuy.com/site/windows-8-1-professional-32-bit-system-builder-oem-windows/2442036.p?id=...
8.1 PRO ( for builders - 64bit )
http://www.bestbuy.com/site/windows-8-1-professional-64-bit-system-builder-oem-windows/2441983.p?id=...
Please keep in mind you should only use 32 bit if your system has less than 4 GB of memory. I would also personally get the OEM however it is your option.
I am not affiliated with Best Buy nor have I ever been employed by Best Buy. All of my thoughts and posts are of my own opinion and personal experience.
I may not always know the right answer, but I will always tell you what I do know. I also do free computer analysis and consultation via private message.
Similar Messages
-
TS1389 How can I make Itunes work properly on Windows 8 ? still receive -42110 error !
Please anyone...help me.
Some discussion on means of locating the SC Info folder on Windows 8 systems in the following topic:
TS1389 Re: How can you do this in windows 8? -
I can't get iTunes to work properly on Windows 8
I can't get iTunes to work properly on Windows 8. I tried everything and iTunes is NOT compatible with Windows 8. There is either an iTunes issue or a Microsoft issue.
I finally got it to work right. Some files and folders (iTunes video files, etc) were referenced to my iTunes account, I copied from my backup (external) Hard Drive to my system Hard Drive. The only thing that can keep me from accessing my wish list for some time is a very heavy Internet traffic via iTunes players to iTunes Store. So everything is now NORMAL.
-
I had itunes working properly for a long time till one day, it was configuring to open the program then i get a message out of nowhere that says could not acess network location %APPDATA%\ i cant even uninstall without this, whats the big deal?!
With that particular variety of 1606 (it's a 1606 error message even though the 1606 error message number isn't returned by the iTunes installer), the following Microsoft document is worth a try:
You receive an "Error 1606" error message when you try to install or remove a Microsoft program -
U rgent:"i want to know the work of this "conversion routine".
Hi all,
In the domain of any field in the database table there is one option called "conversion routine" just below to "output list".
i want to know the work of this "conversion routine".
can any one please tell me the practical use of this with real time example.
good points will be rewarded for helpful answer.
thanks in advance
Message was edited by:
tapu abapHi,
REPORT ZTEST.
TYPES: UPC_YS_API_CHASEL_T TYPE STANDARD TABLE OF UPC_YS_API_CHASEL.
TYPES: UPC_YS_API_CHAPRO_T TYPE STANDARD TABLE OF UPC_YS_API_CHAPRO.
TYPES: UPC_YS_API_KYFPRO_T TYPE STANDARD TABLE OF UPC_YS_API_KYFPRO.
CLASS CL_ABAP_CONV_ROUTINE DEFINITION DEFERRED.
TYPES: BEGIN OF CONVEXIT_LOOKUP_S,
CONVEXIT TYPE LVC_S_FCAT-CONVEXIT,
O_CONVEXIT TYPE REF TO CL_ABAP_CONV_ROUTINE,
END OF CONVEXIT_LOOKUP_S.
TYPES: CONVEXIT_LOOKUP_T TYPE HASHED TABLE OF CONVEXIT_LOOKUP_S
WITH UNIQUE KEY CONVEXIT.
TYPES: FIELDCATALOG_UNIQUE TYPE HASHED TABLE OF LVC_S_FCAT
WITH UNIQUE KEY FIELDNAME.
TYPES: BEGIN OF PLAN_AREA_STRUCT_CACHE,
PLANNING_AREA TYPE UPC_AREA-AREA,
FIELDCATALOG TYPE LVC_T_FCAT,
CHARACTERISTICS TYPE ZUPC_YS_API_CHAPRO_T,
KEYFIGURES TYPE ZUPC_YS_API_KYFPRO_T,
TRANSACTION_DATA_TABLE TYPE REF TO DATA,
END OF PLAN_AREA_STRUCT_CACHE.
TYPES: PLAN_AREA_STRUCT_CACHE_T TYPE SORTED TABLE OF
PLAN_AREA_STRUCT_CACHE WITH UNIQUE KEY PLANNING_AREA.
* CLASS CX_DATE_CONVERSION DEFINITION
CLASS CX_DATE_CONVERSION DEFINITION INHERITING FROM CX_DYNAMIC_CHECK.
PUBLIC SECTION.
DATA: MESSAGE TYPE STRING.
METHODS CONSTRUCTOR
IMPORTING MESSAGE TYPE STRING.
ENDCLASS. "CX_DATE_CONVERSION DEFINITION
* CLASS CX_DATE_CONVERSION IMPLEMENTATION
CLASS CX_DATE_CONVERSION IMPLEMENTATION.
METHOD CONSTRUCTOR.
SUPER->CONSTRUCTOR( ).
ME->MESSAGE = MESSAGE.
ENDMETHOD. "CONSTRUCTOR
ENDCLASS. "CX_DATE_CONVERSION IMPLEMENTATION
* CLASS CL_ABAP_CONV_ROUTINE DEFINITION
CLASS CL_ABAP_CONV_ROUTINE DEFINITION.
PUBLIC SECTION.
METHODS APPLY_CONV_INPUT
IMPORTING
INPUT TYPE ANY
EXPORTING
OUTPUT TYPE ANY .
METHODS APPLY_CONV_OUTPUT
IMPORTING
INPUT TYPE ANY
EXPORTING
OUTPUT TYPE ANY .
METHODS GET_CONVEXIT
RETURNING
VALUE(CONVEXIT) TYPE CONVEXIT .
METHODS SET_CONVEXIT
IMPORTING
VALUE(CONVEXIT) TYPE CONVEXIT .
METHODS CONSTRUCTOR
IMPORTING
CONVEXIT TYPE CONVEXIT OPTIONAL .
PRIVATE SECTION.
DATA CONVEXIT TYPE CONVEXIT .
METHODS GET_INPUT_CONVERSION_EXIT
RETURNING
VALUE(FUNCTION_MODULE_NAME) TYPE STRING .
METHODS GET_OUTPUT_CONVERSION_EXIT
RETURNING
VALUE(FUNCTION_MODULE_NAME) TYPE STRING .
ENDCLASS. "CL_ABAP_CONV_ROUTINE DEFINITION
* CLASS CL_ABAP_CONV_ROUTINE IMPLEMENTATION
CLASS CL_ABAP_CONV_ROUTINE IMPLEMENTATION.
METHOD APPLY_CONV_INPUT .
DATA: FUNCT_MOD TYPE STRING.
IF NOT ME->CONVEXIT IS INITIAL.
* Only apply conversion routine if it exits
CALL METHOD ME->GET_INPUT_CONVERSION_EXIT
RECEIVING
FUNCTION_MODULE_NAME = FUNCT_MOD.
CALL FUNCTION FUNCT_MOD
EXPORTING
INPUT = INPUT
IMPORTING
OUTPUT = OUTPUT.
ELSE.
* Can only hope this works
OUTPUT = INPUT.
ENDIF.
ENDMETHOD. "APPLY_CONV_INPUT
METHOD APPLY_CONV_OUTPUT.
DATA: FUNCT_MOD TYPE STRING.
IF NOT ME->CONVEXIT IS INITIAL.
* Only apply conversion routine if it exits
CALL METHOD ME->GET_OUTPUT_CONVERSION_EXIT
RECEIVING
FUNCTION_MODULE_NAME = FUNCT_MOD.
CALL FUNCTION FUNCT_MOD
EXPORTING
INPUT = INPUT
IMPORTING
OUTPUT = OUTPUT.
ELSE.
* Can only hope this works
OUTPUT = INPUT.
ENDIF.
ENDMETHOD. "APPLY_CONV_OUTPUT
METHOD CONSTRUCTOR.
IF CONVEXIT IS SUPPLIED.
CALL METHOD ME->SET_CONVEXIT
EXPORTING
CONVEXIT = CONVEXIT.
ENDIF.
ENDMETHOD. "CONSTRUCTOR
METHOD GET_CONVEXIT.
CONVEXIT = ME->CONVEXIT.
ENDMETHOD. "GET_CONVEXIT
METHOD SET_CONVEXIT.
ME->CONVEXIT = CONVEXIT.
ENDMETHOD. "SET_CONVEXIT
METHOD GET_INPUT_CONVERSION_EXIT.
* Generate standard conversion routines for input conversion
* This is based on standard SAP ABAP help documentation
CONCATENATE 'CONVERSION_EXIT_' ME->CONVEXIT
'_INPUT' INTO FUNCTION_MODULE_NAME.
ENDMETHOD. "GET_INPUT_CONVERSION_EXIT
METHOD GET_OUTPUT_CONVERSION_EXIT.
* Generate standard conversion routines for output conversion
* This is based on standard SAP ABAP help documentation
CONCATENATE 'CONVERSION_EXIT_' ME->CONVEXIT
'_OUTPUT' INTO FUNCTION_MODULE_NAME.
ENDMETHOD. "GET_OUTPUT_CONVERSION_EXIT
ENDCLASS. "CL_ABAP_CONV_ROUTINE IMPLEMENTATION
* CLASS CL_ABAP_CONV_DECIMAL DEFINITION
CLASS CL_ABAP_CONV_DECIMAL DEFINITION.
PUBLIC SECTION.
CLASS-DATA SAP_DECIMAL_FMT_SPACE TYPE USR01-DCPFM VALUE ' '
READ-ONLY .
CLASS-DATA SAP_DECIMAL_FMT_X TYPE USR01-DCPFM VALUE 'X' READ-ONLY .
CLASS-DATA SAP_DECIMAL_FMT_Y TYPE USR01-DCPFM VALUE 'Y' READ-ONLY .
CLASS-DATA USER_DECIMAL_FORMAT TYPE USR01-DCPFM READ-ONLY .
CLASS-METHODS CLASS_CONSTRUCTOR .
CLASS-METHODS CONVERT_DECIMAL_EXT2INT
IMPORTING
EXTERNAL_VALUE TYPE STRING
CHANGING
INTERNAL_VALUE TYPE P
RAISING
CX_SY_CONVERSION_OVERFLOW
CX_SY_CONVERSION_NO_NUMBER .
CLASS-METHODS CONVERT_DECIMAL_INT2EXT
IMPORTING
INTERNAL_VALUE TYPE P
CHANGING
EXTERNAL_VALUE TYPE STRING .
ENDCLASS. "CL_ABAP_CONV_DECIMAL DEFINITION
* CLASS CL_ABAP_CONV_DECIMAL IMPLEMENTATION
CLASS CL_ABAP_CONV_DECIMAL IMPLEMENTATION.
METHOD CLASS_CONSTRUCTOR .
SELECT SINGLE DCPFM FROM USR01 INTO USER_DECIMAL_FORMAT
WHERE BNAME = SY-UNAME.
ENDMETHOD. "CLASS_CONSTRUCTOR
METHOD CONVERT_DECIMAL_EXT2INT .
* THE GOAL IS TO GET THIS INTO INTERNAL FORMAT WHICH IS EQUIVALENT TO
* EX. NNNNN.NN
DATA: NUM_STR TYPE STRING.
NUM_STR = EXTERNAL_VALUE.
CONDENSE NUM_STR NO-GAPS.
CASE USER_DECIMAL_FORMAT.
WHEN SAP_DECIMAL_FMT_X.
REPLACE ALL OCCURRENCES OF ',' IN NUM_STR WITH SPACE.
CONDENSE NUM_STR NO-GAPS.
WHEN SAP_DECIMAL_FMT_SPACE.
REPLACE ALL OCCURRENCES OF '.' IN NUM_STR WITH SPACE.
CONDENSE NUM_STR NO-GAPS.
REPLACE ALL OCCURRENCES OF ',' IN NUM_STR WITH '.'.
WHEN SAP_DECIMAL_FMT_Y.
REPLACE ALL OCCURRENCES OF ',' IN NUM_STR WITH '.'.
ENDCASE.
INTERNAL_VALUE = NUM_STR.
ENDMETHOD. "CONVERT_DECIMAL_EXT2INT
METHOD CONVERT_DECIMAL_INT2EXT .
* THE GOAL IS TO GET THIS INTO EXTERNAL FORMAT WHICH IS BASED ON SAP
* USER PROFILE SETTINGS
* CURRENT INPUT FORMAT EQUIVALENT IS EX. NNNNN.NN
DATA: TEMP(70) TYPE C.
WRITE INTERNAL_VALUE TO TEMP.
EXTERNAL_VALUE = TEMP.
ENDMETHOD. "CONVERT_DECIMAL_INT2EXT
ENDCLASS. "CL_ABAP_CONV_DECIMAL IMPLEMENTATION
* CLASS CL_ABAP_CONV_DATE DEFINITION
CLASS CL_ABAP_CONV_DATE DEFINITION.
PUBLIC SECTION.
CLASS-DATA SAP_DATE_FMT_5 TYPE USR01-DATFM VALUE '5' READ-ONLY .
CLASS-DATA SAP_DATE_FMT_6 TYPE USR01-DATFM VALUE '6' READ-ONLY .
CLASS-DATA SAP_DATE_FMT_3 TYPE USR01-DATFM VALUE '3' READ-ONLY .
CLASS-DATA SAP_DATE_FMT_4 TYPE USR01-DATFM VALUE '4' READ-ONLY .
CLASS-DATA SAP_DATE_FMT_1 TYPE USR01-DATFM VALUE '1' READ-ONLY .
CLASS-DATA SAP_DATE_FMT_2 TYPE USR01-DATFM VALUE '2' READ-ONLY .
CLASS-DATA USER_DATE_FORMAT TYPE USR01-DATFM READ-ONLY .
CLASS-METHODS CONVERT_DATE_EXT2INT
IMPORTING
EXTERNAL_DATE TYPE STRING
RETURNING
VALUE(INTERNAL_DATE) TYPE D
RAISING
CX_DATE_CONVERSION .
CLASS-METHODS CONVERT_DATE_INT2EXT
IMPORTING
INTERNAL_DATE TYPE D
RETURNING
VALUE(EXTERNAL_DATE) TYPE STRING .
CLASS-METHODS CLASS_CONSTRUCTOR .
ENDCLASS. "CL_ABAP_CONV_DATE DEFINITION
* CLASS CL_ABAP_CONV_DATE IMPLEMENTATION
CLASS CL_ABAP_CONV_DATE IMPLEMENTATION.
METHOD CLASS_CONSTRUCTOR.
SELECT SINGLE DATFM FROM USR01 INTO USER_DATE_FORMAT
WHERE BNAME = SY-UNAME.
ENDMETHOD. "CLASS_CONSTRUCTOR
METHOD CONVERT_DATE_EXT2INT.
* HERE ARE THE CURRENT DATE FORMATS FROM SAP GUI
*1 DD.MM.YYYY
*2 MM/DD/YYYY
*3 MM-DD-YYYY
*4 YYYY.MM.DD
*5 YYYY/MM/DD
*6 YYYY-MM-DD
DATA: PERMITTED_NUMBERS TYPE STRING VALUE '0123456789'.
DATA: TEMP_DATE TYPE D.
DATA: MESSAGE_VALID_NUMERICS TYPE STRING
VALUE 'Only Numerics (0-9) are acceptable.'.
DATA: MESSAGE_VALID_FORMAT TYPE STRING
VALUE 'Invalid date format.'.
IF STRLEN( EXTERNAL_DATE ) = 10.
CASE USER_DATE_FORMAT.
WHEN SAP_DATE_FMT_1.
IF EXTERNAL_DATE+2(1) = '.' AND EXTERNAL_DATE+5(1) = '.'.
TEMP_DATE+0(4) = EXTERNAL_DATE+6(4). " YEAR
TEMP_DATE+4(2) = EXTERNAL_DATE+3(2). " MONTH
TEMP_DATE+6(2) = EXTERNAL_DATE+0(2). " DAY
IF NOT ( TEMP_DATE CO PERMITTED_NUMBERS ).
RAISE EXCEPTION TYPE CX_DATE_CONVERSION
EXPORTING MESSAGE = MESSAGE_VALID_NUMERICS." ISSUE ERROR
ENDIF.
ELSE.
RAISE EXCEPTION TYPE CX_DATE_CONVERSION
EXPORTING MESSAGE = MESSAGE_VALID_FORMAT. " ISSUE ERROR
ENDIF.
WHEN SAP_DATE_FMT_2.
IF EXTERNAL_DATE+2(1) = '/' AND EXTERNAL_DATE+5(1) = '/'.
TEMP_DATE+0(4) = EXTERNAL_DATE+6(4). " YEAR
TEMP_DATE+4(2) = EXTERNAL_DATE+0(2). " MONTH
TEMP_DATE+6(2) = EXTERNAL_DATE+3(2). " DAY
IF NOT ( TEMP_DATE CO PERMITTED_NUMBERS ).
RAISE EXCEPTION TYPE CX_DATE_CONVERSION
EXPORTING MESSAGE = MESSAGE_VALID_NUMERICS. " ISSUE
ENDIF.
ELSE.
RAISE EXCEPTION TYPE CX_DATE_CONVERSION
EXPORTING MESSAGE = MESSAGE_VALID_FORMAT. " ISSUE ERROR
ENDIF.
WHEN SAP_DATE_FMT_3.
IF EXTERNAL_DATE+2(1) = '-' AND EXTERNAL_DATE+5(1) = '-'.
TEMP_DATE+0(4) = EXTERNAL_DATE+6(4). " YEAR
TEMP_DATE+4(2) = EXTERNAL_DATE+0(2). " MONTH
TEMP_DATE+6(2) = EXTERNAL_DATE+3(2). " DAY
IF NOT ( TEMP_DATE CO PERMITTED_NUMBERS ).
RAISE EXCEPTION TYPE CX_DATE_CONVERSION
EXPORTING MESSAGE = MESSAGE_VALID_NUMERICS." ISSUE ERROR
ENDIF.
ELSE.
RAISE EXCEPTION TYPE CX_DATE_CONVERSION
EXPORTING MESSAGE = MESSAGE_VALID_FORMAT. " ISSUE ERROR
ENDIF.
WHEN SAP_DATE_FMT_4.
IF EXTERNAL_DATE+4(1) = '.' AND EXTERNAL_DATE+7(1) = '.'.
TEMP_DATE+0(4) = EXTERNAL_DATE+0(4). " YEAR
TEMP_DATE+4(2) = EXTERNAL_DATE+5(2). " MONTH
TEMP_DATE+6(2) = EXTERNAL_DATE+8(2). " DAY
IF NOT ( TEMP_DATE CO PERMITTED_NUMBERS ).
RAISE EXCEPTION TYPE CX_DATE_CONVERSION
EXPORTING MESSAGE = MESSAGE_VALID_NUMERICS." ISSUE ERROR
ENDIF.
ELSE.
RAISE EXCEPTION TYPE CX_DATE_CONVERSION
EXPORTING MESSAGE = MESSAGE_VALID_FORMAT. " ISSUE ERROR
ENDIF.
WHEN SAP_DATE_FMT_5.
IF EXTERNAL_DATE+4(1) = '/' AND EXTERNAL_DATE+7(1) = '/'.
TEMP_DATE+0(4) = EXTERNAL_DATE+0(4). " YEAR
TEMP_DATE+4(2) = EXTERNAL_DATE+5(2). " MONTH
TEMP_DATE+6(2) = EXTERNAL_DATE+8(2). " DAY
IF NOT ( TEMP_DATE CO PERMITTED_NUMBERS ).
RAISE EXCEPTION TYPE CX_DATE_CONVERSION
EXPORTING MESSAGE = MESSAGE_VALID_NUMERICS." ISSUE ERROR
ENDIF.
ELSE.
RAISE EXCEPTION TYPE CX_DATE_CONVERSION
EXPORTING MESSAGE = MESSAGE_VALID_FORMAT. " ISSUE ERROR
ENDIF.
WHEN SAP_DATE_FMT_6.
IF EXTERNAL_DATE+4(1) = '-' AND EXTERNAL_DATE+7(1) = '-'.
TEMP_DATE+0(4) = EXTERNAL_DATE+0(4). " YEAR
TEMP_DATE+4(2) = EXTERNAL_DATE+5(2). " MONTH
TEMP_DATE+6(2) = EXTERNAL_DATE+8(2). " DAY
IF NOT ( TEMP_DATE CO PERMITTED_NUMBERS ).
RAISE EXCEPTION TYPE CX_DATE_CONVERSION
EXPORTING MESSAGE = MESSAGE_VALID_NUMERICS." ISSUE ERROR
ENDIF.
ELSE.
RAISE EXCEPTION TYPE CX_DATE_CONVERSION
EXPORTING MESSAGE = MESSAGE_VALID_FORMAT. " ISSUE ERROR
ENDIF.
ENDCASE.
INTERNAL_DATE = TEMP_DATE.
ELSEIF STRLEN( EXTERNAL_DATE ) = 8.
* ASSUME NORMAL DATE FORMAT (YYYYMMDD)
INTERNAL_DATE = EXTERNAL_DATE.
ELSE.
RAISE EXCEPTION TYPE CX_DATE_CONVERSION
EXPORTING MESSAGE = MESSAGE_VALID_FORMAT. " ISSUE ERROR
ENDIF.
ENDMETHOD. "CONVERT_DATE_EXT2INT
METHOD CONVERT_DATE_INT2EXT.
* HERE ARE THE CURRENT DATE FORMATS FROM SAP GUI
*1 DD.MM.YYYY
*2 MM/DD/YYYY
*3 MM-DD-YYYY
*4 YYYY.MM.DD
*5 YYYY/MM/DD
*6 YYYY-MM-DD
DATA: EXTERNAL_DATE_TEMP(10) TYPE C.
WRITE INTERNAL_DATE TO EXTERNAL_DATE_TEMP.
EXTERNAL_DATE = EXTERNAL_DATE_TEMP.
ENDMETHOD. "CONVERT_DATE_INT2EXT
ENDCLASS. "CL_ABAP_CONV_DATE IMPLEMENTATION
* CLASS CX_SEM_BPS_DATA_ACCESS DEFINITION
CLASS CX_SEM_BPS_DATA_ACCESS DEFINITION INHERITING FROM CX_DYNAMIC_CHECK
PUBLIC SECTION.
DATA: MESSAGE TYPE STRING.
DATA: RETURN_T TYPE BAPIRET2_T.
METHODS CONSTRUCTOR
IMPORTING
MESSAGE TYPE STRING
RETURN_T TYPE BAPIRET2_T OPTIONAL.
ENDCLASS. "CX_SEM_BPS_DATA_ACCESS DEFINITION
* CLASS CX_SEM_BPS_DATA_ACCESS IMPLEMENTATION
CLASS CX_SEM_BPS_DATA_ACCESS IMPLEMENTATION.
METHOD CONSTRUCTOR.
SUPER->CONSTRUCTOR( ).
ME->MESSAGE = MESSAGE.
ME->RETURN_T = RETURN_T.
ENDMETHOD. "CONSTRUCTOR
ENDCLASS. "CX_SEM_BPS_DATA_ACCESS IMPLEMENTATION
* CLASS CL_SEMBPS_DATA_ACCESSOR DEFINITION
CLASS CL_SEMBPS_DATA_ACCESSOR DEFINITION.
PUBLIC SECTION.
DATA TRANSACTION_DATA TYPE REF TO DATA .
CLASS-DATA C_LEVEL TYPE UPC_PLEVEL-PLEVEL VALUE 'ZLABAP' READ-ONLY .
CLASS-DATA C_LAYOUT TYPE UPP_PARAM-PARAM VALUE 'ZMABAP' READ-ONLY .
CLASS-DATA C_ADHOC_PACK TYPE UPC_PACKAGE-PPACKAGE VALUE '0-ADHOC'
READ-ONLY .
CLASS-DATA C_MULTIPLAN_AREA TYPE UPC_YS_API_CHAPRO-CHANM VALUE
'_AREA_____' READ-ONLY .
METHODS GET_INFOCUBE
RETURNING
VALUE(INFOCUBE) TYPE UPC_BW_AREA-INFOCUBE .
METHODS GET_CHARACTERISTIC_SELECTIONS
EXPORTING
CHARACTERISTIC_SELECTION TYPE UPC_YS_API_CHASEL_T .
METHODS REFRESH
RAISING
CX_SEM_BPS_DATA_ACCESS .
METHODS CONSTRUCTOR
IMPORTING
PLANNING_AREA TYPE UPC_AREA-AREA
IT_FIELDCATALOG TYPE LVC_T_FCAT
TRANSACTION_DATA_TABLE TYPE REF TO DATA
CHARACTERISTIC_SELECTION TYPE UPC_YS_API_CHASEL_T
RAISING
CX_SEM_BPS_DATA_ACCESS .
METHODS GET_PLANNING_AREA
RETURNING
VALUE(PLANNING_AREA) TYPE UPC_AREA-AREA .
METHODS GET_CHARACTERISTICS
EXPORTING
CHARACTERISTICS TYPE UPC_YS_API_CHAPRO_T .
METHODS GET_KEYFIGURES
EXPORTING
KEYFIGURES TYPE UPC_YS_API_KYFPRO_T .
METHODS SAVE
RAISING
CX_SEM_BPS_DATA_ACCESS .
PRIVATE SECTION.
DATA CONVEXIT_LOOKUP TYPE CONVEXIT_LOOKUP_T .
DATA INFOCUBE TYPE UPC_BW_AREA-INFOCUBE .
DATA IT_FIELDCATALOG TYPE FIELDCATALOG_UNIQUE .
DATA PLANNING_AREA TYPE UPC_AREA-AREA .
DATA CHARACTERISTICS TYPE UPC_YS_API_CHAPRO_T .
DATA KEYFIGURES TYPE UPC_YS_API_KYFPRO_T .
DATA CHARACTERISTIC_SELECTION TYPE UPC_YS_API_CHASEL_T .
DATA LAYOUT_COL_SPEC TYPE STANDARD TABLE OF UPC_YS_API_COL .
CLASS-METHODS FORCE_ERROR_MESSAGE
IMPORTING
MESSAGE TYPE STRING OPTIONAL
RETURN_STRUCT TYPE BAPIRET2 OPTIONAL
RETURN_STRUCTS TYPE BAPIRET2_T OPTIONAL
RAISING
CX_SEM_BPS_DATA_ACCESS .
CLASS-METHODS CHECK_MESSAGE
IMPORTING
E_SUBRC TYPE SY-SUBRC
RETURN_STRUCT TYPE BAPIRET2
RAISING
CX_SEM_BPS_DATA_ACCESS .
METHODS SET_CHARACTERISTIC_SELECTION
IMPORTING
CHARACTERISTIC_SELECTION TYPE UPC_YS_API_CHASEL_T .
METHODS SET_PLANNING_AREA
IMPORTING
PLANNING_AREA TYPE UPC_AREA-AREA
RAISING
CX_SEM_BPS_DATA_ACCESS .
METHODS VALIDATE_PLANNING_OBJECTS
RAISING
CX_SEM_BPS_DATA_ACCESS .
CLASS-METHODS CHECK_MESSAGES
IMPORTING
RETURN_STRUCTS TYPE BAPIRET2_T
E_SUBRC TYPE SY-SUBRC
RAISING
CX_SEM_BPS_DATA_ACCESS .
METHODS READ_DATA
RAISING
CX_SEM_BPS_DATA_ACCESS .
ENDCLASS. "CL_SEMBPS_DATA_ACCESSOR DEFINITION
* CLASS CL_SEMBPS_DATA_ACCESSOR IMPLEMENTATION
CLASS CL_SEMBPS_DATA_ACCESSOR IMPLEMENTATION.
METHOD CONSTRUCTOR .
DATA: WA_FIELDCATALOG TYPE LVC_S_FCAT.
DATA: CONVEXIT_WA TYPE CONVEXIT_LOOKUP_S.
* BUILD CONVERSION EXITS AND FIELDCATALOG
LOOP AT IT_FIELDCATALOG INTO WA_FIELDCATALOG.
INSERT WA_FIELDCATALOG INTO TABLE ME->IT_FIELDCATALOG[].
IF NOT WA_FIELDCATALOG-CONVEXIT IS INITIAL.
CLEAR CONVEXIT_WA.
CONVEXIT_WA-CONVEXIT = WA_FIELDCATALOG-CONVEXIT.
CREATE OBJECT CONVEXIT_WA-O_CONVEXIT
EXPORTING
CONVEXIT = WA_FIELDCATALOG-CONVEXIT.
INSERT CONVEXIT_WA INTO TABLE ME->CONVEXIT_LOOKUP.
ENDIF.
ENDLOOP.
CALL METHOD ME->SET_PLANNING_AREA
EXPORTING
PLANNING_AREA = PLANNING_AREA.
CALL METHOD ME->SET_CHARACTERISTIC_SELECTION
EXPORTING
CHARACTERISTIC_SELECTION = CHARACTERISTIC_SELECTION.
* POINT TO TABLE CONTAINING TRANSACTION DATA
ME->TRANSACTION_DATA = TRANSACTION_DATA_TABLE.
* READ DATA
CALL METHOD ME->REFRESH.
ENDMETHOD. "CONSTRUCTOR
METHOD GET_CHARACTERISTICS .
CHARACTERISTICS[] = ME->CHARACTERISTICS[].
ENDMETHOD. "GET_CHARACTERISTICS
METHOD GET_CHARACTERISTIC_SELECTIONS.
CHARACTERISTIC_SELECTION[] = ME->CHARACTERISTIC_SELECTION[].
ENDMETHOD. "GET_CHARACTERISTIC_SELECTIONS
METHOD GET_INFOCUBE .
INFOCUBE = ME->INFOCUBE.
ENDMETHOD. "GET_INFOCUBE
METHOD GET_KEYFIGURES .
KEYFIGURES[] = ME->KEYFIGURES[].
ENDMETHOD. "GET_KEYFIGURES
METHOD GET_PLANNING_AREA .
PLANNING_AREA = ME->PLANNING_AREA.
ENDMETHOD. "GET_PLANNING_AREA
METHOD REFRESH.
CALL METHOD ME->READ_DATA.
ENDMETHOD. "REFRESH
METHOD SAVE .
DATA: E_SUBRC TYPE SY-SUBRC.
DATA: ES_RETURN TYPE BAPIRET2.
DATA: CHARACTERISTICS_WA TYPE UPC_YS_API_CHAPRO.
DATA: WA_REF TYPE REF TO DATA.
DATA: ITK_ROW TYPE TABLE OF UPC_YS_API_ROW.
DATA: ITK_ROW_WA TYPE UPC_YS_API_ROW.
DATA: LAYOUT_COL_SPEC_WA TYPE UPC_YS_API_COL.
DATA: ITK_DATA TYPE TABLE OF UPC_YS_API_DATA.
DATA: ITK_DATA_WA TYPE UPC_YS_API_DATA.
DATA: ETK_RETURN TYPE TABLE OF BAPIRET2.
DATA: WA_FIELDCATALOG TYPE LVC_S_FCAT.
DATA: CONVERSION_EXIT TYPE STRING.
DATA: KEYFIG TYPE STRING.
DATA: DATE_CHAR TYPE STRING.
DATA: MESSAGE TYPE STRING.
CONSTANTS: FIND_FIELD_ERR TYPE STRING VALUE 'Unable to find field'.
FIELD-SYMBOLS: <TD_FIELD> TYPE ANY.
FIELD-SYMBOLS: <TD_WA> TYPE ANY.
FIELD-SYMBOLS: <TD_TAB> TYPE STANDARD TABLE.
ASSIGN ME->TRANSACTION_DATA->* TO <TD_TAB>.
CREATE DATA WA_REF LIKE LINE OF <TD_TAB>.
ASSIGN WA_REF->* TO <TD_WA>.
CLEAR <TD_WA>.
DATA: ROWC TYPE I.
ROWC = 1.
LOOP AT <TD_TAB> INTO <TD_WA>.
* FILL CHARACTERISTIC DATA
LOOP AT ME->CHARACTERISTICS INTO CHARACTERISTICS_WA.
ASSIGN COMPONENT CHARACTERISTICS_WA-CHANM OF STRUCTURE <TD_WA>
TO <TD_FIELD>.
IF SY-SUBRC = 0.
ITK_ROW_WA-ROW = ROWC.
ITK_ROW_WA-CHANM = CHARACTERISTICS_WA-CHANM.
CLEAR ITK_ROW_WA-CHAVLEXT.
* APPLY OUTPUT CONVERSION EXIT FOR SAP EXTERNAL TYPE
* ONLY APPLIES WHEN VALUE IS NOT UNASSIGNED ('#') MEANING INITIAL(ABAP)
* FOR EXTERNAL CONVERSION UNASSIGED ('#') IS JUST A BLANK
IF NOT <TD_FIELD> IS INITIAL.
READ TABLE ME->IT_FIELDCATALOG INTO WA_FIELDCATALOG
WITH TABLE KEY FIELDNAME = ITK_ROW_WA-CHANM.
IF SY-SUBRC = 0 AND NOT WA_FIELDCATALOG-CONVEXIT IS INITIAL.
DATA: CONVEXIT_WA TYPE CONVEXIT_LOOKUP_S.
READ TABLE ME->CONVEXIT_LOOKUP INTO CONVEXIT_WA
WITH TABLE KEY CONVEXIT = WA_FIELDCATALOG-CONVEXIT.
CALL METHOD CONVEXIT_WA-O_CONVEXIT->APPLY_CONV_OUTPUT
EXPORTING
INPUT = <TD_FIELD>
IMPORTING
OUTPUT = <TD_FIELD>.
ITK_ROW_WA-CHAVLEXT = <TD_FIELD>.
ELSEIF SY-SUBRC = 0 AND WA_FIELDCATALOG-INTTYPE = 'D'.
* APPLY DATE CONVERSION TO EXTERNAL FORMAT BASED ON USER PROFILE
CALL METHOD CL_ABAP_CONV_DATE=>CONVERT_DATE_INT2EXT
EXPORTING
INTERNAL_DATE = <TD_FIELD>
RECEIVING
EXTERNAL_DATE = DATE_CHAR.
ITK_ROW_WA-CHAVLEXT = DATE_CHAR.
ELSE.
ITK_ROW_WA-CHAVLEXT = <TD_FIELD>.
ENDIF.
ENDIF.
APPEND ITK_ROW_WA TO ITK_ROW.
ELSE.
* FAILURE TO FIND THE FIELD IN THE POINTER WILL RESULT IN
* TRANSACTION DATA INTEGRITY ISSUES, WE SHOULD ERROR OUT
CONCATENATE FIND_FIELD_ERR CHARACTERISTICS_WA-CHANM
INTO MESSAGE.
CALL METHOD CL_SEMBPS_DATA_ACCESSOR=>FORCE_ERROR_MESSAGE
EXPORTING
MESSAGE = MESSAGE.
ENDIF.
ENDLOOP.
* FILL KEY FIGURE DATA
LOOP AT ME->LAYOUT_COL_SPEC INTO LAYOUT_COL_SPEC_WA.
ASSIGN COMPONENT LAYOUT_COL_SPEC_WA-CHAVLEXT
OF STRUCTURE <TD_WA> TO <TD_FIELD>.
IF SY-SUBRC = 0.
ITK_DATA_WA-ROW = ROWC.
ITK_DATA_WA-COL = LAYOUT_COL_SPEC_WA-COL.
READ TABLE ME->IT_FIELDCATALOG INTO WA_FIELDCATALOG
WITH TABLE KEY FIELDNAME = LAYOUT_COL_SPEC_WA-CHAVLEXT.
IF WA_FIELDCATALOG-INTTYPE = 'P'.
* MUST CONVERT TO EXTERNAL FORMAT FOR DECIMALS
CALL METHOD CL_ABAP_CONV_DECIMAL=>CONVERT_DECIMAL_INT2EXT
EXPORTING
INTERNAL_VALUE = <TD_FIELD>
CHANGING
EXTERNAL_VALUE = KEYFIG.
ELSEIF WA_FIELDCATALOG-INTTYPE = 'F'
OR WA_FIELDCATALOG-INTTYPE = 'I'.
KEYFIG = <TD_FIELD>.
ENDIF.
ITK_DATA_WA-VALUE = KEYFIG.
APPEND ITK_DATA_WA TO ITK_DATA.
ELSE.
* FAILURE TO FIND THE FIELD IN THE POINTER WILL RESULT IN
* TRANSACTION DATA INTEGRITY ISSUES, WE SHOULD ERROR OUT
CONCATENATE FIND_FIELD_ERR LAYOUT_COL_SPEC_WA-CHAVLEXT
INTO MESSAGE.
CALL METHOD CL_SEMBPS_DATA_ACCESSOR=>FORCE_ERROR_MESSAGE
EXPORTING
MESSAGE = MESSAGE.
ENDIF.
ENDLOOP.
ROWC = ROWC + 1.
ENDLOOP.
* SET ADHOC PACKAGE SELECTIONS
CALL FUNCTION 'API_SEMBPS_ADHOCPACKAGE_SET'
EXPORTING
I_AREA = ME->PLANNING_AREA
I_PLEVEL = CL_SEMBPS_DATA_ACCESSOR=>C_LEVEL
IMPORTING
E_SUBRC = E_SUBRC
ES_RETURN = ES_RETURN
TABLES
ITK_CHASEL = CHARACTERISTIC_SELECTION.
* THROW EXCEPTIONS IF NECESSARY
CALL METHOD CL_SEMBPS_DATA_ACCESSOR=>CHECK_MESSAGE
EXPORTING
E_SUBRC = E_SUBRC
RETURN_STRUCT = ES_RETURN.
CALL FUNCTION 'API_SEMBPS_SETDATA'
EXPORTING
I_AREA = ME->PLANNING_AREA
I_PLEVEL = CL_SEMBPS_DATA_ACCESSOR=>C_LEVEL
I_PACKAGE = CL_SEMBPS_DATA_ACCESSOR=>C_ADHOC_PACK
I_LAYOUT = CL_SEMBPS_DATA_ACCESSOR=>C_LAYOUT
IMPORTING
E_SUBRC = E_SUBRC
TABLES
ITK_ROW = ITK_ROW
ITK_DATA = ITK_DATA
ETK_RETURN = ETK_RETURN.
* THROW EXCEPTIONS IF NECESSARY
CALL METHOD CL_SEMBPS_DATA_ACCESSOR=>CHECK_MESSAGES
EXPORTING
E_SUBRC = E_SUBRC
RETURN_STRUCTS = ETK_RETURN.
* SAVE THE DATA INTO THE CUBE
CALL FUNCTION 'API_SEMBPS_POST'
IMPORTING
E_SUBRC = E_SUBRC
ES_RETURN = ES_RETURN.
CALL METHOD CL_SEMBPS_DATA_ACCESSOR=>CHECK_MESSAGE
EXPORTING
E_SUBRC = E_SUBRC
RETURN_STRUCT = ES_RETURN.
* CLEAR SEM BPS DATA BUFFER AS WEIRD BEHAVIOR MAY OCCUR IF
* NOT CLEARED WHETHER IF SUCCESSFUL OR NOT
CALL FUNCTION 'API_SEMBPS_REFRESH'
IMPORTING
E_SUBRC = E_SUBRC
ES_RETURN = ES_RETURN.
CALL METHOD CL_SEMBPS_DATA_ACCESSOR=>CHECK_MESSAGE
EXPORTING
E_SUBRC = E_SUBRC
RETURN_STRUCT = ES_RETURN.
ENDMETHOD. "SAVE
METHOD CHECK_MESSAGE .
DATA: RETURN_T TYPE BAPIRET2_T.
APPEND RETURN_STRUCT TO RETURN_T.
CALL METHOD CL_SEMBPS_DATA_ACCESSOR=>CHECK_MESSAGES
EXPORTING
RETURN_STRUCTS = RETURN_T
E_SUBRC = E_SUBRC.
ENDMETHOD. "CHECK_MESSAGE
METHOD CHECK_MESSAGES .
IF E_SUBRC <> 0.
DATA: MESSAGE TYPE STRING.
DATA: RETURN TYPE BAPIRET2.
READ TABLE RETURN_STRUCTS INTO RETURN WITH KEY TYPE = 'E'.
IF SY-SUBRC <> 0.
READ TABLE RETURN_STRUCTS INTO RETURN WITH KEY TYPE = 'A'.
ENDIF.
MESSAGE = RETURN-MESSAGE.
RAISE EXCEPTION TYPE CX_SEM_BPS_DATA_ACCESS
EXPORTING
MESSAGE = MESSAGE
RETURN_T = RETURN_STRUCTS.
ENDIF.
ENDMETHOD. "CHECK_MESSAGES
METHOD FORCE_ERROR_MESSAGE.
DATA: RC TYPE SY-SUBRC VALUE 4.
IF MESSAGE IS SUPPLIED.
DATA: RETURN TYPE BAPIRET2.
RETURN-TYPE = 'E'.
RETURN-MESSAGE = MESSAGE.
CALL METHOD CL_SEMBPS_DATA_ACCESSOR=>CHECK_MESSAGE
EXPORTING
RETURN_STRUCT = RETURN
E_SUBRC = RC.
ENDIF.
IF RETURN_STRUCT IS SUPPLIED.
CALL METHOD CL_SEMBPS_DATA_ACCESSOR=>CHECK_MESSAGE
EXPORTING
RETURN_STRUCT = RETURN_STRUCT
E_SUBRC = RC.
ENDIF.
IF RETURN_STRUCTS IS SUPPLIED.
CALL METHOD CL_SEMBPS_DATA_ACCESSOR=>CHECK_MESSAGES
EXPORTING
RETURN_STRUCTS = RETURN_STRUCTS
E_SUBRC = RC.
ENDIF.
ENDMETHOD. "FORCE_ERROR_MESSAGE
METHOD READ_DATA .
DATA: CHAR_DATA TYPE TABLE OF UPC_YS_API_ROW.
DATA: KEYFIG_DATA TYPE TABLE OF UPC_YS_API_DATA.
DATA: ETK_ROW_WA TYPE UPC_YS_API_ROW.
DATA: ETK_COL TYPE TABLE OF UPC_YS_API_COL.
DATA: ETK_RETURN TYPE TABLE OF BAPIRET2.
DATA: KEYFIGURES_WA TYPE UPC_YS_API_KYFPRO.
DATA: E_SUBRC TYPE SY-SUBRC.
DATA: ES_RETURN TYPE BAPIRET2.
DATA: ETK_COL_WA TYPE UPC_YS_API_COL.
DATA: WA_REF TYPE REF TO DATA.
DATA: HAS_DATA TYPE BOOLEAN.
DATA: KEYFIG_DATA_WA TYPE UPC_YS_API_DATA.
DATA: LINE1 TYPE I.
DATA: LINE2 TYPE I.
DATA: MESSAGE TYPE STRING.
CONSTANTS: FIND_FIELD_ERR TYPE STRING VALUE 'Unable to find field '.
FIELD-SYMBOLS: <TD_FIELD> TYPE ANY.
FIELD-SYMBOLS: <TD_WA> TYPE ANY.
FIELD-SYMBOLS: <TD_TAB> TYPE STANDARD TABLE.
CALL FUNCTION 'API_SEMBPS_ADHOCPACKAGE_SET'
EXPORTING
I_AREA = ME->PLANNING_AREA
I_PLEVEL = CL_SEMBPS_DATA_ACCESSOR=>C_LEVEL
IMPORTING
E_SUBRC = E_SUBRC
ES_RETURN = ES_RETURN
TABLES
ITK_CHASEL = ME->CHARACTERISTIC_SELECTION.
CALL METHOD CL_SEMBPS_DATA_ACCESSOR=>CHECK_MESSAGE
EXPORTING
E_SUBRC = E_SUBRC
RETURN_STRUCT = ES_RETURN.
CALL FUNCTION 'API_SEMBPS_GETDATA'
EXPORTING
I_AREA = ME->PLANNING_AREA
I_PLEVEL = CL_SEMBPS_DATA_ACCESSOR=>C_LEVEL
I_PACKAGE = CL_SEMBPS_DATA_ACCESSOR=>C_ADHOC_PACK
I_LAYOUT = CL_SEMBPS_DATA_ACCESSOR=>C_LAYOUT
I_READ_ONLY = 'X'
IMPORTING
E_SUBRC = E_SUBRC
TABLES
ETK_ROW = CHAR_DATA
ETK_COL = ETK_COL
ETK_DATA = KEYFIG_DATA
ETK_RETURN = ETK_RETURN.
CALL METHOD CL_SEMBPS_DATA_ACCESSOR=>CHECK_MESSAGES
EXPORTING
E_SUBRC = E_SUBRC
RETURN_STRUCTS = ETK_RETURN.
* SET LAYOUT COLUMN SPECIFICATION
ME->LAYOUT_COL_SPEC[] = ETK_COL[].
* CHECK TO SEE IF THE COLUMN SPEC CONTAINS ALL KEY FIGURES REQUIRED
* THIS WOULD GUARANTEE THAT ALL THE KEY FIGURES PRESENT IN THE CUBE
* ARE ALSO IN THE LAYOUT
DESCRIBE TABLE ME->KEYFIGURES LINES LINE1.
DESCRIBE TABLE ME->LAYOUT_COL_SPEC LINES LINE2.
IF LINE1 <> LINE2.
LOOP AT ME->KEYFIGURES INTO KEYFIGURES_WA.
READ TABLE ME->LAYOUT_COL_SPEC
WITH KEY CHAVLEXT = KEYFIGURES_WA-KYFNM
TRANSPORTING NO FIELDS.
IF SY-SUBRC <> 0.
CLEAR ES_RETURN.
ES_RETURN-TYPE = 4.
CONCATENATE 'Layout ' CL_SEMBPS_DATA_ACCESSOR=>C_LAYOUT
' is missing keyfigure: ' KEYFIGURES_WA-KYFNM
INTO ES_RETURN-MESSAGE.
APPEND ES_RETURN TO ETK_RETURN.
ENDIF.
ENDLOOP.
CALL METHOD CL_SEMBPS_DATA_ACCESSOR=>FORCE_ERROR_MESSAGE
EXPORTING
RETURN_STRUCTS = ETK_RETURN.
ENDIF.
* CLEAR TRANSACTION DATA IF ANY
ASSIGN TRANSACTION_DATA->* TO <TD_TAB>.
REFRESH <TD_TAB>.
CREATE DATA WA_REF LIKE LINE OF <TD_TAB>.
ASSIGN WA_REF->* TO <TD_WA>.
DATA: PREV_ROWID TYPE UPC_YS_API_ROW-ROW VALUE 1.
DATA: WA_FIELDCATALOG TYPE LVC_S_FCAT.
DATA: CONVERSION_EXIT TYPE STRING.
DATA: DECIMAL_CONV TYPE STRING.
DATA: DATE_CONV TYPE STRING.
CLEAR <TD_WA>.
* SORT DATA
SORT KEYFIG_DATA BY ROW.
SORT ETK_COL BY COL.
SORT CHAR_DATA BY ROW.
* INSERT ALL CHARACTERISTIC ROWS
LOOP AT CHAR_DATA INTO ETK_ROW_WA.
IF ETK_ROW_WA-CHANM IS NOT INITIAL.
IF ETK_ROW_WA-ROW <> PREV_ROWID.
CLEAR HAS_DATA.
PREV_ROWID = ETK_ROW_WA-ROW.
APPEND <TD_WA> TO <TD_TAB>.
CLEAR <TD_WA>.
ENDIF.
HAS_DATA = 'X'.
ASSIGN COMPONENT ETK_ROW_WA-CHANM OF STRUCTURE
<TD_WA> TO <TD_FIELD>.
IF SY-SUBRC = 0.
CLEAR <TD_FIELD>.
IF ETK_ROW_WA-CHAVLEXT <> '#'.
* APPLY INPUT CONVERSION EXIT FOR SAP INTERNAL DATA ELEMENTS
* ONLY APPLIES WHEN VALUE IS NOT UNASSIGNED ('#')
READ TABLE ME->IT_FIELDCATALOG INTO WA_FIELDCATALOG
WITH TABLE KEY FIELDNAME = ETK_ROW_WA-CHANM.
IF SY-SUBRC = 0 AND NOT WA_FIELDCATALOG-CONVEXIT IS INITIAL.
<TD_FIELD> = ETK_ROW_WA-CHAVLEXT.
* APPLY INPUT CONVERSION EXIT IF ANY, CHECK INFOOBJECT RSD1 TRANSACTION
DATA: CONVEXIT_WA TYPE CONVEXIT_LOOKUP_S.
READ TABLE ME->CONVEXIT_LOOKUP INTO CONVEXIT_WA
WITH TABLE KEY CONVEXIT = WA_FIELDCATALOG-CONVEXIT.
CALL METHOD CONVEXIT_WA-O_CONVEXIT->APPLY_CONV_INPUT
EXPORTING
INPUT = <TD_FIELD>
IMPORTING
OUTPUT = <TD_FIELD>.
ELSEIF SY-SUBRC = 0 AND WA_FIELDCATALOG-INTTYPE = 'D'.
* APPLY DATE CONVERSION AS THERE IS NO COVERSION EXIT FOR DATES DUE TO
* SAPGUI DISPLAY FORMATS BASED ON USER PROFILES
TRY.
DATE_CONV = ETK_ROW_WA-CHAVLEXT.
CALL METHOD CL_ABAP_CONV_DATE=>CONVERT_DATE_EXT2INT
EXPORTING
EXTERNAL_DATE = DATE_CONV
RECEIVING
INTERNAL_DATE = <TD_FIELD>.
CATCH CX_DATE_CONVERSION .
* THERE SHOULD BE NO DATE CONVERSION ERROR.
ENDTRY.
ELSE.
<TD_FIELD> = ETK_ROW_WA-CHAVLEXT.
ENDIF.
ENDIF.
ELSE.
* FAILURE TO FIND THE FIELD IN THE POINTER WILL RESULT IN
* TRANSACTION DATA INTEGRITY ISSUES, WE SHOULD ERROR OUT
CONCATENATE FIND_FIELD_ERR ETK_ROW_WA-CHANM
INTO MESSAGE.
CALL METHOD CL_SEMBPS_DATA_ACCESSOR=>FORCE_ERROR_MESSAGE
EXPORTING
MESSAGE = MESSAGE.
ENDIF.
ENDIF.
ENDLOOP.
* APPEND THE LAST ROW
IF HAS_DATA IS NOT INITIAL.
APPEND <TD_WA> TO <TD_TAB>.
ENDIF.
* INSERT ALL KEY FIGURES
LOOP AT KEYFIG_DATA INTO KEYFIG_DATA_WA.
READ TABLE <TD_TAB> INTO <TD_WA> INDEX KEYFIG_DATA_WA-ROW.
IF SY-SUBRC <> 0.
* SUMMARY LINE WHICH INDICATES COMPLETION
EXIT.
ENDIF.
* AVAILABLE KEY FIGURES
READ TABLE ETK_COL INTO ETK_COL_WA
INDEX KEYFIG_DATA_WA-COL.
ASSIGN COMPONENT ETK_COL_WA-CHAVLEXT OF STRUCTURE
<TD_WA> TO <TD_FIELD>.
IF SY-SUBRC = 0.
READ TABLE ME->IT_FIELDCATALOG INTO WA_FIELDCATALOG
WITH TABLE KEY FIELDNAME = ETK_COL_WA-CHAVLEXT.
IF WA_FIELDCATALOG-INTTYPE = 'P'.
DECIMAL_CONV = KEYFIG_DATA_WA-VALUE.
CALL METHOD CL_ABAP_CONV_DECIMAL=>CONVERT_DECIMAL_EXT2INT
EXPORTING
EXTERNAL_VALUE = DECIMAL_CONV
CHANGING
INTERNAL_VALUE = <TD_FIELD>.
ELSEIF WA_FIELDCATALOG-INTTYPE = 'F' OR
WA_FIELDCATALOG-INTTYPE = 'I'.
<TD_FIELD> = KEYFIG_DATA_WA-VALUE.
ENDIF.
MODIFY <TD_TAB> INDEX KEYFIG_DATA_WA-ROW FROM <TD_WA>
TRANSPORTING (ETK_COL_WA-CHAVLEXT) .
ELSE.
* FAILURE TO FIND THE FIELD IN THE POINTER WILL RESULT IN
* TRANSACTION DATA INTEGRITY ISSUES, WE SHOULD ERROR OUT
CONCATENATE FIND_FIELD_ERR ETK_ROW_WA-CHANM
INTO MESSAGE.
CALL METHOD CL_SEMBPS_DATA_ACCESSOR=>FORCE_ERROR_MESSAGE
EXPORTING
MESSAGE = MESSAGE.
ENDIF.
ENDLOOP.
ENDMETHOD. "READ_DATA
METHOD SET_CHARACTERISTIC_SELECTION.
DATA: CHARACTERISTIC_SELECTION_WA TYPE UPC_YS_API_CHASEL.
DATA: WA_FIELDCATALOG TYPE LVC_S_FCAT.
DATA: CONV_EXIT TYPE STRING.
DATA: DATE_CONV TYPE STRING.
DATA: TEMP_DATE TYPE D.
* basically convert the selection criteria to external values and hold
* copy of that
REFRESH ME->CHARACTERISTIC_SELECTION.
LOOP AT CHARACTERISTIC_SELECTION INTO CHARACTERISTIC_SELECTION_WA.
READ TABLE ME->IT_FIELDCATALOG INTO WA_FIELDCATALOG
WITH TABLE KEY FIELDNAME = CHARACTERISTIC_SELECTION_WA-CHANM.
IF SY-SUBRC = 0.
IF NOT WA_FIELDCATALOG-CONVEXIT IS INITIAL.
DATA: CONVEXIT_WA TYPE CONVEXIT_LOOKUP_S.
READ TABLE ME->CONVEXIT_LOOKUP INTO CONVEXIT_WA
WITH TABLE KEY CONVEXIT = WA_FIELDCATALOG-CONVEXIT.
CALL METHOD CONVEXIT_WA-O_CONVEXIT->APPLY_CONV_OUTPUT
EXPORTING
INPUT = CHARACTERISTIC_SELECTION_WA-LOW
IMPORTING
OUTPUT = CHARACTERISTIC_SELECTION_WA-LOW.
CALL METHOD CONVEXIT_WA-O_CONVEXIT->APPLY_CONV_OUTPUT
EXPORTING
INPUT = CHARACTERISTIC_SELECTION_WA-HIGH
IMPORTING
OUTPUT = CHARACTERISTIC_SELECTION_WA-HIGH.
ELSEIF WA_FIELDCATALOG-INTTYPE = 'D'.
* DATE TYPE CONVERSION BASED ON SAP GUI
IF NOT CHARACTERISTIC_SELECTION_WA-LOW IS INITIAL.
TEMP_DATE = CHARACTERISTIC_SELECTION_WA-LOW.
CALL METHOD CL_ABAP_CONV_DATE=>CONVERT_DATE_INT2EXT
EXPORTING
INTERNAL_DATE = TEMP_DATE
RECEIVING
EXTERNAL_DATE = DATE_CONV.
CHARACTERISTIC_SELECTION_WA-LOW = DATE_CONV.
ENDIF.
IF NOT CHARACTERISTIC_SELECTION_WA-HIGH IS INITIAL.
TEMP_DATE = CHARACTERISTIC_SELECTION_WA-HIGH.
CALL METHOD CL_ABAP_CONV_DATE=>CONVERT_DATE_INT2EXT
EXPORTING
INTERNAL_DATE = TEMP_DATE
RECEIVING
EXTERNAL_DATE = DATE_CONV.
CHARACTERISTIC_SELECTION_WA-HIGH = DATE_CONV.
ENDIF.
ENDIF.
APPEND CHARACTERISTIC_SELECTION_WA TO
ME->CHARACTERISTIC_SELECTION.
ENDIF.
ENDLOOP.
ENDMETHOD. "SET_CHARACTERISTIC_SELECTION
METHOD SET_PLANNING_AREA.
DATA: ES_RETURN TYPE BAPIRET2.
DATA: E_SUBRC TYPE SY-SUBRC.
* CHECK TO SEE OF PLANNING AREA IS A MULTI-PLANNING AREA
CALL FUNCTION 'API_SEMBPS_AREA_GETDETAIL'
EXPORTING
I_AREA = PLANNING_AREA
IMPORTING
E_SUBRC = E_SUBRC
ES_RETURN = ES_RETURN
TABLES
ETK_CHAPRO = ME->CHARACTERISTICS
ETK_KYFPRO = ME->KEYFIGURES.
CALL METHOD CL_SEMBPS_DATA_ACCESSOR=>CHECK_MESSAGE
EXPORTING
E_SUBRC = E_SUBRC
RETURN_STRUCT = ES_RETURN.
ME->PLANNING_AREA = PLANNING_AREA.
* FIND THE INFOCUBE RELATED TO THE PLANNING AREA
SELECT SINGLE INFOCUBE FROM UPC_BW_AREA INTO ME->INFOCUBE
WHERE AREA = PLANNING_AREA.
CALL METHOD ME->VALIDATE_PLANNING_OBJECTS.
ENDMETHOD. "SET_PLANNING_AREA
METHOD VALIDATE_PLANNING_OBJECTS.
DATA: E_SUBRC TYPE SY-SUBRC.
DATA: ES_RETURN TYPE BAPIRET2.
DATA: ES_RETURN_T TYPE TABLE OF BAPIRET2.
DATA: ETK_CHA TYPE TABLE OF UPC_YS_API_PLEVEL_CHA.
DATA: ETK_CHA_WA TYPE UPC_YS_API_PLEVEL_CHA.
DATA: CHARACTERISTIC_WA TYPE UPC_YS_API_CHAPRO.
DATA: KEYFIGURES_WA TYPE UPC_YS_API_KYFPRO.
DATA: ETK_CHASEL TYPE TABLE OF UPC_YS_API_CHASEL.
DATA: ETK_KYF TYPE TABLE OF UPC_YS_KYF.
DATA: ETK_RETURN TYPE TABLE OF BAPIRET2.
DATA: LINES1 TYPE I.
DATA: LINES2 TYPE I.
DATA: E_LEADCOL_COMPL TYPE UPC_YS_API_INFO-LEADCOL_COMPL.
DATA: ETK_HEAD_INFO TYPE TABLE OF UPC_YS_API_HEAD_INFO.
DATA: ETK_ROW_INFO TYPE TABLE OF UPC_YS_API_ROW_INFO.
DATA: ETK_COL_INFO TYPE TABLE OF UPC_YS_API_COL_INFO.
* CHECK TO SEE IF ITS A MULTI-PLANNING AREA
READ TABLE ME->CHARACTERISTICS TRANSPORTING NO FIELDS
WITH KEY CHANM = CL_SEMBPS_DATA_ACCESSOR=>C_MULTIPLAN_AREA.
* MULTI-PLANNING AREAS SHOULD NOT BE ACCEPTABLE TO THIS AS IT LEADS
* TO REFERENCING OF PLANNING AREAS IN ITS LEVEL/PACKAGES/LAYOUTS WHICH
* IS HARDER TO MAINTAIN
IF SY-SUBRC = 0.
REFRESH ME->CHARACTERISTICS.
REFRESH ME->KEYFIGURES.
CLEAR ES_RETURN.
ES_RETURN-TYPE = 'E'.
ES_RETURN-MESSAGE = 'DO NOT USE MULTI-PLANNING AREAS'.
APPEND ES_RETURN TO ES_RETURN_T.
CALL METHOD CL_SEMBPS_DATA_ACCESSOR=>FORCE_ERROR_MESSAGE
EXPORTING
RETURN_STRUCTS = ES_RETURN_T.
ENDIF.
* CHECK THE PLANNING LEVEL
CALL FUNCTION 'API_SEMBPS_PLEVEL_GETDETAIL'
EXPORTING
I_AREA = ME->PLANNING_AREA
I_PLEVEL = CL_SEMBPS_DATA_ACCESSOR=>C_LEVEL
IMPORTING
E_SUBRC = E_SUBRC
ES_RETURN = ES_RETURN
TABLES
ETK_CHA = ETK_CHA
ETK_CHASEL = ETK_CHASEL
ETK_KYF = ETK_KYF.
CALL METHOD CL_SEMBPS_DATA_ACCESSOR=>CHECK_MESSAGE
EXPORTING
E_SUBRC = E_SUBRC
RETURN_STRUCT = ES_RETURN.
* CHECK TO SEE IF THE SAME NUMBER OF CHARACTERISTICS EXISTS IN LEVEL
DESCRIBE TABLE ME->CHARACTERISTICS LINES LINES1.
DESCRIBE TABLE ETK_CHA LINES LINES2.
IF LINES1 <> LINES2.
* ERROR OUT THE MISSING CHARACTERISTICS FROM THE PLANNING LEVEL
LOOP AT ME->CHARACTERISTICS INTO CHARACTERISTIC_WA.
READ TABLE ETK_CHA WITH KEY CHANM = CHARACTERISTIC_WA-CHANM
TRANSPORTING NO FIELDS.
IF SY-SUBRC <> 0.
CLEAR ES_RETURN.
ES_RETURN-TYPE = 'E'.
CONCATENATE 'Missing characteristic ' CHARACTERISTIC_WA-CHANM
' from planning level ' CL_SEMBPS_DATA_ACCESSOR=>C_LEVEL
INTO ES_RETURN-MESSAGE.
APPEND ES_RETURN TO ES_RETURN_T.
ENDIF.
ENDLOOP.
ENDIF.
* CHECK TO SEE IF EVERY CHARACTERISTIC IS AVAIABLE FOR SELECTION IN
* PACKAGE
READ TABLE ETK_CHA WITH KEY PACKSEL = SPACE TRANSPORTING NO FIELDS.
IF SY-SUBRC = 0.
* ERROR OUT THE CHARACTERISTICS THAT ARE NOT AVAILABLE FOR PACKAGE
* SELECTIONS
LOOP AT ETK_CHA INTO ETK_CHA_WA WHERE PACKSEL = SPACE.
CLEAR ES_RETURN.
ES_RETURN-TYPE = 'E'.
CONCATENATE 'Characteristic ' ETK_CHA_WA-CHANM
' needs to be available for selection in planning level '
CL_SEMBPS_DATA_ACCESSOR=>C_LEVEL INTO ES_RETURN-MESSAGE.
APPEND ES_RETURN TO ES_RETURN_T.
ENDLOOP.
ENDIF.
* CHECK TO SEE IF THE SAME NUMBER OF KEYFIGURES EXISTS IN LEVEL
DESCRIBE TABLE ME->KEYFIGURES LINES LINES1.
DESCRIBE TABLE ETK_KYF LINES LINES2.
IF LINES1 <> LINES2.
* ERROR OUT THE MISSING KEYFIGURES FROM THE PLANNING LEVEL
LOOP AT ME->KEYFIGURES INTO KEYFIGURES_WA.
READ TABLE ETK_KYF WITH KEY KYFNM = KEYFIGURES_WA-KYFNM
TRANSPORTING NO FIELDS.
IF SY-SUBRC <> 0.
CLEAR ES_RETURN.
ES_RETURN-TYPE = 'E'.
CONCATENATE 'Missing keyfigure ' KEYFIGURES_WA-KYFNM
' from planning level ' CL_SEMBPS_DATA_ACCESSOR=>C_LEVEL
INTO ES_RETURN-MESSAGE.
APPEND ES_RETURN TO ES_RETURN_T.
ENDIF.
ENDLOOP.
ENDIF.
* CHECK THE PLANNING LAYOUT
CALL FUNCTION 'API_SEMBPS_LAYOUT_GETDETAIL'
EXPORTING
I_AREA = ME->PLANNING_AREA
I_PLEVEL = CL_SEMBPS_DATA_ACCESSOR=>C_LEVEL
I_LAYOUT = CL_SEMBPS_DATA_ACCESSOR=>C_LAYOUT
IMPORTING
E_SUBRC = E_SUBRC
E_LEADCOL_COMPL = E_LEADCOL_COMPL
TABLES
ETK_HEAD_INFO = ETK_HEAD_INFO
ETK_ROW_INFO = ETK_ROW_INFO
ETK_COL_INFO = ETK_COL_INFO
ETK_RETURN = ETK_RETURN.
CALL METHOD CL_SEMBPS_DATA_ACCESSOR=>CHECK_MESSAGES
EXPORTING
E_SUBRC = E_SUBRC
RETURN_STRUCTS = ETK_RETURN.
* MAKE SURE THAT HEADER AREA IS EMPTY AS ALL THE DATA READ IS IN LEAD
* COLUMNS ONLY
IF NOT ETK_HEAD_INFO[] IS INITIAL.
CLEAR ES_RETURN.
ES_RETURN-TYPE = 'E'.
CONCATENATE 'Header area must be empty in layout '
CL_SEMBPS_DATA_ACCESSOR=>C_LAYOUT
INTO ES_RETURN-MESSAGE.
APPEND ES_RETURN TO ES_RETURN_T.
ENDIF.
* MAKE SURE THAT LAYOUT TYPE IS KEY FIGURES IN DATA COLUMNS
IF NOT E_LEADCOL_COMPL IS INITIAL.
CLEAR ES_RETURN.
ES_RETURN-TYPE = 'E'.
CONCATENATE 'Layout ' CL_SEMBPS_DATA_ACCESSOR=>C_LAYOUT
' must be of type "Key Figs in data columns"'
INTO ES_RETURN-MESSAGE.
APPEND ES_RETURN TO ES_RETURN_T.
ENDIF.
* CHECK FOR THE SAME NUMBER OF CHARACTERISTICS IN LEAD COLUMNS OF LAYOUT
* AND IN PLANNING AREA
DESCRIBE TABLE ME->CHARACTERISTICS LINES LINES1.
DESCRIBE TABLE ETK_ROW_INFO LINES LINES2.
IF LINES1 <> LINES2.
* ERROR OUT THE MISSING CHARACTERISTICS FROM THE PLANNING LEVEL
LOOP AT ME->CHARACTERISTICS INTO CHARACTERISTIC_WA.
READ TABLE ETK_ROW_INFO WITH KEY CHANM = CHARACTERISTIC_WA-CHANM
TRANSPORTING NO FIELDS.
IF SY-SUBRC <> 0.
CLEAR ES_RETURN.
ES_RETURN-TYPE = 'E'.
CONCATENATE 'Missing characteristic ' CHARACTERISTIC_WA-CHANM
' from planning layout ' CL_SEMBPS_DATA_ACCESSOR=>C_LAYOUT
INTO ES_RETURN-MESSAGE.
APPEND ES_RETURN TO ES_RETURN_T.
ENDIF.
ENDLOOP.
ENDIF.
* IF MESSAGES ARE AVAILBLE FROM CUSTOM CHECKS THROW EXCEPTION
IF NOT ES_RETURN_T[] IS INITIAL.
CALL METHOD CL_SEMBPS_DATA_ACCESSOR=>FORCE_ERROR_MESSAGE
EXPORTING
RETURN_STRUCTS = ES_RETURN_T.
ENDIF.
ENDMETHOD. "VALIDATE_PLANNING_OBJECTS
ENDCLASS. "CL_SEMBPS_DATA_ACCESSOR IMPLEMENTATION
* CLASS CL_SEMBPS_DATA_ACCESS_FACTORY DEFINITION
CLASS CL_SEMBPS_DATA_ACCESS_FACTORY DEFINITION.
PUBLIC SECTION.
CLASS-METHODS CREATE_DATA_ACCESSOR
IMPORTING
PLAN_AREA TYPE UPC_AREA-AREA
CHARACTERISTIC_SELECTION TYPE UPC_YS_API_CHASEL_T
DDIC_STRUCTURE_NAME TYPE DD02L-TABNAME OPTIONAL
EXPORTING
O_DATA_ACCESSOR TYPE REF TO CL_SEMBPS_DATA_ACCESSOR
CHANGING
TRANSACTION_DATA_TABLE TYPE STANDARD TABLE OPTIONAL
RAISING
CX_SEM_BPS_DATA_ACCESS .
CLASS-METHODS GET_PLANNING_AREA_SPECS
IMPORTING
PLANNING_AREA TYPE UPC_AREA-AREA
EXPORTING
TRANSACTION_DATA_STRUCT TYPE REF TO DATA
KEYFIGURES TYPE UPC_YS_API_KYFPRO_T
FIELDCATALOG TYPE LVC_T_FCAT
CHARACTERISTICS TYPE UPC_YS_API_CHAPRO_T
RAISING
CX_SEM_BPS_DATA_ACCESS .
PRIVATE SECTION.
CLASS-DATA PLAN_AREA_CACHE TYPE PLAN_AREA_STRUCT_CACHE_T .
CLASS-METHODS CREATE_DYNAMIC_STRUCTURE
IMPORTING
PLANNING_AREA TYPE UPC_AREA-AREA
EXPORTING
TRANSACTION_DATA_STRUCT TYPE REF TO DATA
KEYFIGURES TYPE UPC_YS_API_KYFPRO_T
FIELDCATALOG TYPE LVC_T_FCAT
CHARACTERISTICS TYPE UPC_YS_API_CHAPRO_T
RAISING
CX_SEM_BPS_DATA_ACCESS .
ENDCLASS. "CL_SEMBPS_DATA_ACCESS_FACTORY DEFINITION
* CLASS CL_SEMBPS_DATA_ACCESS_FACTORY IMPLEMENTATION
CLASS CL_SEMBPS_DATA_ACCESS_FACTORY IMPLEMENTATION.
METHOD CREATE_DATA_ACCESSOR.
DATA: TRANSACTION_DATA_STRUCT TYPE REF TO DATA.
DATA: FIELDCATALOG TYPE LVC_T_FCAT.
IF TRANSACTION_DATA_TABLE IS SUPPLIED
AND DDIC_STRUCTURE_NAME IS SUPPLIED AND
NOT DDIC_STRUCTURE_NAME IS INITIAL.
* RETRIEVE FIELD CATALOG OF THE DDIC STRUCTURE TO PROVIDE
CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
EXPORTING
I_STRUCTURE_NAME = DDIC_STRUCTURE_NAME
CHANGING
CT_FIELDCAT = FIELDCATALOG
EXCEPTIONS
INCONSISTENT_INTERFACE = 1
PROGRAM_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.
GET REFERENCE OF TRANSACTION_DATA_TABLE INTO
TRANSACTION_DATA_STRUCT.
ELSE.
* GENERATE INTERNAL TABLE AND ITS FIELD CATALOG DYNAMICALLY
CALL METHOD CL_SEMBPS_DATA_ACCESS_FACTORY=>GET_PLANNING_AREA_SPECS
EXPORTING
PLANNING_AREA = PLAN_AREA
IMPORTING
TRANSACTION_DATA_STRUCT = TRANSACTION_DATA_STRUCT
FIELDCATALOG = FIELDCATALOG.
ENDIF.
* CREATE DATA ACCESSOR
CREATE OBJECT O_DATA_ACCESSOR
EXPORTING
PLANNING_AREA = PLAN_AREA
IT_FIELDCATALOG = FIELDCATALOG
TRANSACTION_DATA_TABLE = TRANSACTION_DATA_STRUCT
CHARACTERISTIC_SELECTION = CHARACTERISTIC_SELECTION.
ENDMETHOD. "CREATE_DATA_ACCESSOR
METHOD GET_PLANNING_AREA_SPECS.
DATA: PLAN_AREA_CACHE_WA TYPE PLAN_AREA_STRUCT_CACHE.
FIELD-SYMBOLS: <TD_TAB_DEFINITION> TYPE STANDARD TABLE.
READ TABLE PLAN_AREA_CACHE
WITH TABLE KEY PLANNING_AREA = PLANNING_AREA
INTO PLAN_AREA_CACHE_WA.
* CREATE INTERNAL TABLE REFLECTING THE PLANNING AREA AND CACHE IT
* TO AVOID TOO MANY CALLS TO CREATION OF DYNAMIC INTERNAL TABLES
* SAP HAS RESTRICTED DEVELOPERS FROM CREATING
IF SY-SUBRC <> 0.
CLEAR PLAN_AREA_CACHE_WA.
CALL METHOD
CL_SEMBPS_DATA_ACCESS_FACTORY=>CREATE_DYNAMIC_STRUCTURE
EXPORTING
PLANNING_AREA = PLANNING_AREA
IMPORTING
TRANSACTION_DATA_STRUCT =
PLAN_AREA_CACHE_WA-TRANSACTION_DATA_TABLE
KEYFIGURES = PLAN_AREA_CACHE_WA-KEYFIGURES
FIELDCATALOG = PLAN_AREA_CACHE_WA-FIELDCATALOG
CHARACTERISTICS = PLAN_AREA_CACHE_WA-CHARACTERISTICS.
PLAN_AREA_CACHE_WA-PLANNING_AREA = PLANNING_AREA.
INSERT PLAN_AREA_CACHE_WA INTO TABLE PLAN_AREA_CACHE.
ENDIF.
FIELDCATALOG[] = PLAN_AREA_CACHE_WA-FIELDCATALOG.
CHARACTERISTICS[] = PLAN_AREA_CACHE_WA-CHARACTERISTICS[].
KEYFIGURES[] = PLAN_AREA_CACHE_WA-KEYFIGURES[].
ASSIGN PLAN_AREA_CACHE_WA-TRANSACTION_DATA_TABLE->*
TO <TD_TAB_DEFINITION>.
* CREATE A NEW REFERENCE
CREATE DATA TRANSACTION_DATA_STRUCT LIKE
<TD_TAB_DEFINITION>.
ENDMETHOD. "GET_PLANNING_AREA_SPECS
METHOD CREATE_DYNAMIC_STRUCTURE.
DATA: ES_RETURN TYPE BAPIRET2.
DATA: E_SUBRC TYPE SY-SUBRC.
DATA: MESSAGE TYPE STRING.
CALL FUNCTION 'API_SEMBPS_AREA_GETDETAIL'
EXPORTING
I_AREA = PLANNING_AREA
IMPORTING
E_SUBRC = E_SUBRC
ES_RETURN = ES_RETURN
TABLES
ETK_CHAPRO = CHARACTERISTICS
ETK_KYFPRO = KEYFIGURES.
IF E_SUBRC <> 0.
MESSAGE = ES_RETURN-MESSAGE.
RAISE EXCEPTION TYPE CX_SEM_BPS_DATA_ACCESS
EXPORTING MESSAGE = MESSAGE.
ENDIF.
READ TABLE CHARACTERISTICS TRANSPORTING NO FIELDS
WITH KEY CHANM = CL_SEMBPS_DATA_ACCESSOR=>C_MULTIPLAN_AREA.
IF SY-SUBRC = 0.
MESSAGE = 'DO NOT USE MULTI-PLANNING AREAS'.
RAISE EXCEPTION TYPE CX_SEM_BPS_DATA_ACCESS
EXPORTING MESSAGE = MESSAGE.
ENDIF.
DATA: CHAR_WA TYPE UPC_YS_API_CHAPRO.
DATA: KEYFIG_WA TYPE UPC_YS_API_KYFPRO.
DATA: WA_FIELDCATALOG TYPE LVC_S_FCAT.
DATA: RETURN TYPE BAPIRET2.
DATA: DETAILS TYPE BAPI6108.
* CHARACTERISTIC FIELDCATALOG
LOOP AT CHARACTERISTICS INTO CHAR_WA.
WA_FIELDCATALOG-INTTYPE = CHAR_WA-INTTP.
WA_FIELDCATALOG-FIELDNAME = CHAR_WA-CHANM.
WA_FIELDCATALOG-DATATYPE = CHAR_WA-DATATP.
WA_FIELDCATALOG-INTLEN = CHAR_WA-INTLEN.
WA_FIELDCATALOG-DECIMALS = CHAR_WA-DECIMALS.
WA_FIELDCATALOG-OUTPUTLEN = CHAR_WA-OUTPUTLEN.
CALL FUNCTION 'BAPI_IOBJ_GETDETAIL'
EXPORTING
INFOOBJECT = CHAR_WA-CHANM
IMPORTING
DETAILS = DETAILS
RETURN = RETURN.
IF RETURN-TYPE = 'E'.
MESSAGE = RETURN-MESSAGE.
RAISE EXCEPTION TYPE CX_SEM_BPS_DATA_ACCESS
EXPORTING MESSAGE = MESSAGE.
ENDIF.
WA_FIELDCATALOG-CONVEXIT = DETAILS-CONVEXIT.
APPEND WA_FIELDCATALOG TO FIELDCATALOG.
ENDLOOP.
* KEYFIGURE FIELDCATALOG
LOOP AT KEYFIGURES INTO KEYFIG_WA.
WA_FIELDCATALOG-INTTYPE = KEYFIG_WA-INTTP.
WA_FIELDCATALOG-FIELDNAME = KEYFIG_WA-KYFNM.
WA_FIELDCATALOG-DATATYPE = KEYFIG_WA-DATATP.
WA_FIELDCATALOG-INTLEN = KEYFIG_WA-DIGITS.
WA_FIELDCATALOG-DECIMALS = KEYFIG_WA-DECIMALS.
WA_FIELDCATALOG-DD_OUTLEN = KEYFIG_WA-OUTPUTLEN.
CALL FUNCTION 'BAPI_IOBJ_GETDETAIL'
EXPORTING
INFOOBJECT = KEYFIG_WA-KYFNM
IMPORTING
DETAILS = DETAILS
RETURN = RETURN.
IF RETURN-TYPE = 'E'.
MESSAGE = RETURN-MESSAGE.
RAISE EXCEPTION TYPE CX_SEM_BPS_DATA_ACCESS
EXPORTING MESSAGE = MESSAGE.
ENDIF.
WA_FIELDCATALOG-CONVEXIT = DETAILS-CONVEXIT.
APPEND WA_FIELDCATALOG TO FIELDCATALOG.
ENDLOOP.
* AVOID TOO MANY CALLS TO THIS FUNCTION MODULE
IF NOT FIELDCATALOG[] IS INITIAL.
CALL METHOD CL_ALV_TABLE_CREATE=>CREATE_DYNAMIC_TABLE
EXPORTING
IT_FIELDCATALOG = FIELDCATALOG
IMPORTING
EP_TABLE = TRANSACTION_DATA_STRUCT
EXCEPTIONS
GENERATE_SUBPOOL_DIR_FULL = 1
OTHERS = 2.
CASE SY-SUBRC.
WHEN 1.
RAISE EXCEPTION TYPE CX_SEM_BPS_DATA_ACCESS EXPORTING
MESSAGE = 'Dynamic table creation failure on subpool'.
WHEN 2.
RAISE EXCEPTION TYPE CX_SEM_BPS_DATA_ACCESS EXPORTING
MESSAGE = 'Dynamic table creation failure'.
ENDCASE.
ENDIF.
ENDMETHOD. "CREATE_DYNAMIC_STRUCTURE
ENDCLASS. "CL_SEMBPS_DATA_ACCESS_FACTORY IMPLEMENTATION
Look at this link:
<a href="http://help.sap.com/saphelp_nw04/helpdata/en/cf/21ee19446011d189700000e8322d00/frameset.htm">http://help.sap.com/saphelp_nw04/helpdata/en/cf/21ee19446011d189700000e8322d00/frameset.htm</a>
Pls reward points.
Regards,
Ameet -
Flash player does not work properly on Windows 7 32 bits
Hello,
My flash player does not work properly on Windows 7 32 bits with Firfox and IE8 (lasts versions).
My Flash player version : 10.0.45.2, but I tried with version 9 too, with same problems.
I have tried to uninstall, reboot, reinstall several times, ... witch did not worked.
In fact, it works correctly on some sites, like youtube, but not on some others like :
http://www.dailymotion.com/ => black screen instead of videos, right click gives flash context menu
http://www.canalplus.fr/ => videos does not load, right click gives flash context menu
http://www.myspace.com/ => no audio player, right click gives flash context menu
some games in http://www.kongregate.com/ => black screen instead of games, right click gives flash context menu
I have no problem with shockwave in http://www.adobe.com/shockwave/welcome/
No problem too with flash player on http://www.adobe.com/software/flash/about/
But in the Global Privacy Settings panel (http://www.macromedia.com/support/documentation/en/flashplayer/help/settings_manager02.htm l), I cannot change any settings :
I cannot check boxes,
My changes are not saved.
In most of flash animations, videos, ...,
when I click on parameters, I cannot do anything, even closing.
when I am in full screen mode, the message "press escape to exit...." does not disappear.
Last thing, all those problems was not there when I was on Windows XP, few weeks ago, and appear with my registered Windows 7 premium familly edition, with the same hardware configuration...
Thank you for your helpHi eidnolb
Thanks for your answer.
This is what I have :
Verify user permissions
I have an administrator account.
I tried (uninstall, install and run) with super-administrator account for same results
Install the most current version.
I am running the latest version (10.0.45.2)
Run the Clean Installer to Fix 3rd Party Flash Player Cleaners
I did not "clean" my computer.
Troubleshoot Pop-up blockers
I have no Pop-up or esle blocker software.
Ensure that Internet utilities do not block Flash Player
I tried (uninstall, install and run) without Avast.
I have windows 7 firewall. I do not know where I can allow ActiveX controls and Flash (SWF) content. I do not see anything relative to ActiveX an Flash in allowed program list.
Fix machine crashes when displaying Flash content
I have no freez or crash.
Using IE, Shockwave Flash Object is Enabled and vs 10.0.45.2
Using FF, I have SWF vs 10.0.45.2 and it is Enabled
I really do not understand !!
Thanks,
Ju' -
What can I do if my CD or DVD drive doesn't work properly in Windows 8?
QuestionWhat can I do when if my laptop CD or DVD drive doesn't work properly in Windows 8?
AnswerNote: For help with this issue in Windows 7, please see this article.
To get your CD or DVD drive working correctly, try these suggestions in the order listed.
Reinstall the Driver
Hold the Windows key and press the 'x' key to open a menu in the lower-left. In this menu, select "Device Manager." Expand "DVD/CD-ROM drives." Right-click the entry for the CD/DVD drive nested under "DVD/CD-ROM drives," then select "Uninstall." Finally, restart the computer. The computer will reinstall the drivers for the drive.
Power Cycle
Even when your laptop is off and unplugged, residual power can still be held in some components. While this is normal, clearing it can help with some hardware problems. Perform these steps to complete what’s called a power cycle.
Ensure the laptop is turned off.
Unplug the laptop's AC power cable.
Unplug all wires and peripherals. This includes CDs, DVDs, USB sticks, mice, printers, and any other accessories.
Remove the battery (if the model has a removable battery). If the model does not have a removable battery, check your user's guide to determine if you have a pinhole reset on the bottom. If you do, press this.
Hold down the power button for thirty seconds.
Reattach the battery if removed.
Connect the AC adaptor to the power socket that was confirmed to be working in the first step.
Connect the other end of the AC adaptor to your computer.
Start the computer and test the drive
Microsoft Fix-it
Your computer may exhibit one or more of the following symptoms:
Your CD or DVD drive no longer appears in Windows
Your CD or DVD drive does not read or write and is shown as disabled
The media in your CD or DVD drive cannot be read
The media cannot be written to a CD or DVD inserted into the drive
You receive an error message about your CD or DVD drive
If any of these symptoms apply to your computer, use Microsoft Fix-it troubleshooter available here.
System Restore
Try using System Restore to restore to the most restore point from before the problem arose.
How To: Understanding System Restore, Refresh, Reset, and, Recovery options in Windows 8 + Video
System Recovery
If the System Restore doesn't solve the issue, you could try a System Reset. Resetting your laptop to its original, out-of-the-box state is a great way to eliminate software as a possible cause of the problem. Note that doing a system reset will return the laptop to its default conditions, completely wiping your data. Information on how to perform a system recovery can be found in your user's guide.
For more information on performing a recovery, see the following article:
How To: Understanding System Restore, Refresh, Reset, and, Recovery options in Windows 8 + Video
Contact Customer Support
If the drive doesn't work after performing a recovery, it may be due to hardware failure. Please call customer support or seek servicing.See this Microsoft article - http://support.microsoft.com/kb/314060/en-us For ways to fix manually
and/or use the proper microsoft fixit 8.1 and 8 or the other one for Windows 7, Vista, and XP listed below.
(these are from the Microsoft article)
Resolution 2: Use the CD/DVD Fix it troubleshooter
To automatically fix common issues with CD or DVD drives, click Run now, and then follow the on-screen instructions. Windows 8.1 and Windows 8
The Automatically diagnose and fix common problems with CD or DVD drives troubleshooter may automatically fix the problem described in this article.
This troubleshooter fixes many problems. learn more
Run now
Windows 7, Windows Vista and Windows XP
The Automatically diagnose and fix common problems with CD or DVD drives troubleshooter may automatically fix the problem described in this article.
This troubleshooter fixes many problems. learn more
Run now
If your problem is not solved, try the next
S70-ABT2N22 Windows 7 Pro & 8.1Pro, C55-A5180 Windows 8.1****Click on White “Kudos” STAR to say thanks!**** -
Jtree Node with JComboBox don't work properly in Windows Vista!
Hi people!
i create a Jtree component and create a special node, that is a <strong>JPanel with a JLabel + JCombobox</strong>!
Only the direct childs of root have this special node.
A can put this work properly in Windows XP, like the picture:
[XP Image|http://feupload.fe.up.pt/get/jcgd0rY5p9PoFPG]
And in Windows Vista the same code appear like this:
[Vista Image|http://feupload.fe.up.pt/get/Ylajl6hlCUFc0xe]
<strong>Hence, in Vista something append behind the JLabel and show something wyerd!</strong>
I can't understant this and if someone can help i appreciate!
The TreeNodeRender class is :
public class MetaDataTreeNodeRenderer implements TreeCellRenderer {
private JLabel tip = new JLabel();
private JPanel panel = new JPanel();
private JComboBox dataMartsRenderer = new JComboBox();
private DefaultTreeCellRenderer nonEditableNodeRenderer = new DefaultTreeCellRenderer();
private HashMap<String, String> valueSaver = null;
public MetaDataTreeNodeRenderer(Component treeContainer, HashMap<String, String> valueSaver, String[] valuesComboBox) {
this.valueSaver = valueSaver;
int width = (int)treeContainer.getPreferredSize().getWidth();
panel.setLayout(new GridBagLayout());
java.awt.GridBagConstraints gridBagConstraints = new java.awt.GridBagConstraints();
panel.setMaximumSize(new Dimension(width, 15));
panel.setBackground(new Color(255, 255, 255, 0));
dataMartsRenderer = new JComboBox(valuesComboBox);
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 0;
panel.add(tip, gridBagConstraints);
gridBagConstraints.gridx = 1;
panel.add(dataMartsRenderer, gridBagConstraints);
tip.setLabelFor(dataMartsRenderer);
public JComboBox getEditableNodeRenderer() {
return dataMartsRenderer;
public String getTipText(){
return this.tip.getText();
public Component getTreeCellRendererComponent(JTree tree, Object value, boolean selected,
boolean expanded, boolean leaf, int row, boolean hasFocus) {
Component returnValue = null;
DefaultMutableTreeNode currentNode = (DefaultMutableTreeNode)value;
DefaultMutableTreeNode currentNodeFather = (DefaultMutableTreeNode)currentNode.getParent();
if(currentNodeFather != null && currentNodeFather.isRoot()){//se o meu pai é a raiz, então eu sou um datamart
//se sou um datamart, então sou editável.
String dataMart = (String)currentNode.getUserObject();
String dataMartValue = this.valueSaver.get(dataMart);
tip.setText(dataMart);
if(dataMartValue != null) {
dataMartsRenderer.setSelectedItem(dataMartValue);
returnValue = panel;
}else{//sou um nó não editável.
returnValue = nonEditableNodeRenderer.getTreeCellRendererComponent(tree,
value, selected, expanded, leaf, row, hasFocus);
return returnValue;
}The TreeNodeEditor class is :
public class MetaDataTreeNodeEditor extends AbstractCellEditor implements TreeCellEditor {
MetaDataTreeNodeRenderer renderer = null;
JTree tree;
//Where i save all JComboBox values ( name of label, selected item in combobox), for all combbox
HashMap<String, String> valueSaver = null;
public MetaDataTreeNodeEditor(JTree tree, Component treeContainer, HashMap<String, String> valueSaver, String[] valuesComboBox) {
this.tree = tree;
this.renderer = new MetaDataTreeNodeRenderer(treeContainer, valueSaver, valuesComboBox);
this.valueSaver = valueSaver;
public Object getCellEditorValue() {
JComboBox comboBox = renderer.getEditableNodeRenderer();
String dataMart = renderer.getTipText();
this.valueSaver.put(dataMart, (String)comboBox.getSelectedItem() );
return dataMart;
@Override
public boolean isCellEditable(EventObject event) {
boolean returnValue = false;
if (event instanceof MouseEvent) {
MouseEvent mouseEvent = (MouseEvent) event;
if (mouseEvent.getClickCount() > 1) {
TreePath path = tree.getPathForLocation(mouseEvent.getX(), mouseEvent.getY());
if (path != null) {
Object node = path.getLastPathComponent();
if ((node != null) && (node instanceof DefaultMutableTreeNode)) {
DefaultMutableTreeNode treeNode = (DefaultMutableTreeNode) node;
if ( treeNode.getParent() != null && ((DefaultMutableTreeNode) treeNode.getParent()).isRoot()) {
returnValue = true;
} else {
returnValue = false;
return returnValue;
public Component getTreeCellEditorComponent(final JTree tree, final Object value, boolean selected,
boolean expanded, boolean leaf, int row) {
Component editor = renderer.getTreeCellRendererComponent(tree, value, true, expanded, leaf,
row, true);
ActionListener actionListener = new ActionListener(){
public void actionPerformed(ActionEvent e) {
if (stopCellEditing()) {
fireEditingStopped();
if (editor instanceof JPanel) {
Object component = ((JPanel) editor).getComponent(1);
JComboBox field = (JComboBox) component;
field.addActionListener(actionListener);
return editor;
}Hi people!
i create a Jtree component and create a special node, that is a <strong>JPanel with a JLabel + JCombobox</strong>!
Only the direct childs of root have this special node.
A can put this work properly in Windows XP, like the picture:
[XP Image|http://feupload.fe.up.pt/get/jcgd0rY5p9PoFPG]
And in Windows Vista the same code appear like this:
[Vista Image|http://feupload.fe.up.pt/get/Ylajl6hlCUFc0xe]
<strong>Hence, in Vista something append behind the JLabel and show something wyerd!</strong>
I can't understant this and if someone can help i appreciate!
The TreeNodeRender class is :
public class MetaDataTreeNodeRenderer implements TreeCellRenderer {
private JLabel tip = new JLabel();
private JPanel panel = new JPanel();
private JComboBox dataMartsRenderer = new JComboBox();
private DefaultTreeCellRenderer nonEditableNodeRenderer = new DefaultTreeCellRenderer();
private HashMap<String, String> valueSaver = null;
public MetaDataTreeNodeRenderer(Component treeContainer, HashMap<String, String> valueSaver, String[] valuesComboBox) {
this.valueSaver = valueSaver;
int width = (int)treeContainer.getPreferredSize().getWidth();
panel.setLayout(new GridBagLayout());
java.awt.GridBagConstraints gridBagConstraints = new java.awt.GridBagConstraints();
panel.setMaximumSize(new Dimension(width, 15));
panel.setBackground(new Color(255, 255, 255, 0));
dataMartsRenderer = new JComboBox(valuesComboBox);
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 0;
panel.add(tip, gridBagConstraints);
gridBagConstraints.gridx = 1;
panel.add(dataMartsRenderer, gridBagConstraints);
tip.setLabelFor(dataMartsRenderer);
public JComboBox getEditableNodeRenderer() {
return dataMartsRenderer;
public String getTipText(){
return this.tip.getText();
public Component getTreeCellRendererComponent(JTree tree, Object value, boolean selected,
boolean expanded, boolean leaf, int row, boolean hasFocus) {
Component returnValue = null;
DefaultMutableTreeNode currentNode = (DefaultMutableTreeNode)value;
DefaultMutableTreeNode currentNodeFather = (DefaultMutableTreeNode)currentNode.getParent();
if(currentNodeFather != null && currentNodeFather.isRoot()){//se o meu pai é a raiz, então eu sou um datamart
//se sou um datamart, então sou editável.
String dataMart = (String)currentNode.getUserObject();
String dataMartValue = this.valueSaver.get(dataMart);
tip.setText(dataMart);
if(dataMartValue != null) {
dataMartsRenderer.setSelectedItem(dataMartValue);
returnValue = panel;
}else{//sou um nó não editável.
returnValue = nonEditableNodeRenderer.getTreeCellRendererComponent(tree,
value, selected, expanded, leaf, row, hasFocus);
return returnValue;
}The TreeNodeEditor class is :
public class MetaDataTreeNodeEditor extends AbstractCellEditor implements TreeCellEditor {
MetaDataTreeNodeRenderer renderer = null;
JTree tree;
//Where i save all JComboBox values ( name of label, selected item in combobox), for all combbox
HashMap<String, String> valueSaver = null;
public MetaDataTreeNodeEditor(JTree tree, Component treeContainer, HashMap<String, String> valueSaver, String[] valuesComboBox) {
this.tree = tree;
this.renderer = new MetaDataTreeNodeRenderer(treeContainer, valueSaver, valuesComboBox);
this.valueSaver = valueSaver;
public Object getCellEditorValue() {
JComboBox comboBox = renderer.getEditableNodeRenderer();
String dataMart = renderer.getTipText();
this.valueSaver.put(dataMart, (String)comboBox.getSelectedItem() );
return dataMart;
@Override
public boolean isCellEditable(EventObject event) {
boolean returnValue = false;
if (event instanceof MouseEvent) {
MouseEvent mouseEvent = (MouseEvent) event;
if (mouseEvent.getClickCount() > 1) {
TreePath path = tree.getPathForLocation(mouseEvent.getX(), mouseEvent.getY());
if (path != null) {
Object node = path.getLastPathComponent();
if ((node != null) && (node instanceof DefaultMutableTreeNode)) {
DefaultMutableTreeNode treeNode = (DefaultMutableTreeNode) node;
if ( treeNode.getParent() != null && ((DefaultMutableTreeNode) treeNode.getParent()).isRoot()) {
returnValue = true;
} else {
returnValue = false;
return returnValue;
public Component getTreeCellEditorComponent(final JTree tree, final Object value, boolean selected,
boolean expanded, boolean leaf, int row) {
Component editor = renderer.getTreeCellRendererComponent(tree, value, true, expanded, leaf,
row, true);
ActionListener actionListener = new ActionListener(){
public void actionPerformed(ActionEvent e) {
if (stopCellEditing()) {
fireEditingStopped();
if (editor instanceof JPanel) {
Object component = ((JPanel) editor).getComponent(1);
JComboBox field = (JComboBox) component;
field.addActionListener(actionListener);
return editor;
} -
Has anyone gotten DLNA to work properly with Windows 7 x64 ?
Has anyone gotten DLNA to work properly on Windows 7 64 bit and Windows Media Player 12? I got it working, sort of. It's not reliable though, and very slow. It drops the connection a lot, and when I go to engage it it connects about half of the time and half of the time it won't see the Media Server. It also times out when trying to scan my (admittedly large) music directory on my PC.
I'm sure that my hardware is ok, I think that DLNA is just a buggy system. But if anyone has it working properly with Windows 7 x64 and WMP 12 can you tell me exactly how you set it up? And if you used another desktop app besides WMP can you tell me what worked for you?
Thanks!Try setting it up like this. Hope this helps!
Start Device Manager.
Windows 7 Click Start > Control Panel > System and Security > Device Manager.
The following devices are normally installed:
Anrdoid USB Devices
My HTC
Disk drives
HTC Android Phone USB Device
Modems
HTC Modem (if using as a tethered modem)
Portable Devices
E:/ (Where E represents the assigned drive letter.)
Universal Serial Bus controllers
USB Composite Device
USB Mass Storage Device
If a red X, yellow ! or yellow ? is displayed to the left of a listed device, a conflict is present and the drivers must be updated or reinstalled.
Driver conflicts may also be indicated by a device entry labeled Other Devices or Unknown.
If a conflict is present:
If using the HTC DROID Incredible ADR6300 as a Sync device continue to step 3.
If using the HTC DROID Incredible ADR6300 as a Modem ensure the device drivers are installed. Refer to Downloading and installing VZAccess Manager for additional assistance.
If VZAccess Manager is installed and a driver conflict is still present, continue to step 3.
Right-click the device then click Update Driver Software.
If using Windows 2000 / XP, right-click the device then click Update Driver.
The device name may differ from the example shown.
Click Browse my computer for driver software.
If using Windows 2000 / XP, select Install from a list or specific location (Advanced) then click Next.
Enter C:\Windows\System64\driver into the search window then click Next.
The driver location can be entered manually or navigated to by clicking Browse.
If the driver software is not found, a Windows Operating System update may be needed.
Click Close. -
My GX630 doesnt work properly on Windows Vista 64 bit
Hi,
I have problem with my GX630, its doest work properly at W Vista 64 bit, exactly Sleep mode ... its imposible to awake my computer nd I have to turn it off and than on to wake it up ...
those buttons Turbo nd Eco mode doesnt work.
sometimes happen that i get blue error screen and reset but I dont know why ... it wrotes something with some .dll file ...
some people told me that its error is caused by that thing that there are no drivers for 64 vista yet ...
I would be pleased if someone could help me up to this topic or to my email (removed to protect user privacy) or ICQ (115-378-414) thank to all of you Jabu"sometimes happen that i get blue error screen and reset but I dont know why ... it wrotes something with some .dll file ... "
What is the BSOD error code? What .dll ? Write down the exact error.
Do you OC your notebook?
"some people told me that its error is caused by that thing that there are no drivers for 64 vista yet ... "
Install Drivers from MSI web:
http://global.msi.eu/index.php?func=downloaddetail&type=driver&maincat_no=135&prod_no=1513
"those buttons Turbo nd Eco mode doesnt work."
You need SCM: http://global.msi.eu/index.php?func=downloaddetail&type=utility&maincat_no=135&prod_no=1513
But x64 bit is N/A.
Why you use x64bit version anyway? Why not 32bit? -
TB display devices don't work properly under windows
I went out and picked up a TB display last night to pair with my 2011 mbp. I live in windows about 80% of the time and expected there to be no issues with the basic usb hub built into the display – unfortunately that does not seem to be the case. My Apple usb keyboard (also brand new) and dell usb mouse both hang/freeze/work erratically when connected to the back of the display, as does my Jabra pro headset.
I can make the behavior 10 times worse simply by using hardware built into the display, such as the display's facetime camera. If I fire up Lync and start a video chat, my keyboard and mouse become nearly unusable. My basic testing under Lion appears to confirm this is an issue with Apple’s boot camp drivers as things work properly under OS X. Problem occurs both with win7 and win2008r2, I have rebuilt both OSes twice to confirm.
The firmware/drivers of the display itself appear to be the problem. The peripherals work fine plugged directly into the laptop. Thunderbolt itself appears to be the root of the issue, as the facetime camera exhibits the same pauses/lags even with no peripherals plugged into the display (unless the facetime cam is a usb device and not a pci-e device, in which case perhasp the usb implementation is to blame). Hope there will be a firmware/driver fix soon.I have marked this as answered as it was more a post to help others who may have experienced the same problem I did and didn't get a reply or just didn't know that this program could be the reason their Windows Mail has issues that can't seem to be resolved any other way apart from ignore them and hope they don't get worse.
-
Sound won't work properly under Windows XP
Under Bootcamp (Windows XP SP 3, fresh installed) the sound from the right loudspeaker is a LOT louder than the sound from the left one. Under Mac OS everythings seems to be normal.
What could that be? Especially when I play games under windows it sounds awful.
DanielHello Pumpkinbb. Thank you for posting on the HP Forums. I understand your headphones are not working properly, on your computer. To assist you properly, I require the following information:
1. The computer's model number. If you require assistance locating this information, please reference this website: http://h10025.www1.hp.com/ewfrf/wc/document?cc=us&lc=en&docname=c00033108
2. The computer's operating system. I know you stated the computer has Windows 8, but I would like to double-check. If you require assistance locating this information, please reference this website: http://windows.microsoft.com/en-CA/windows/which-operating-system
3. Have you installed any new hardware on this computer, before the issue appeared?
4. Have you installed any new software or drivers on this computer, before the issue appeared?
In the meantime, please apply the troubleshooting in this HP document, then provide the results: http://h10025.www1.hp.com/ewfrf/wc/document?cc=us&lc=en&docname=c01884922
Note that the troubleshooting is intended for Windows 7, but is effective on Windows 8. Please respond as soon as possible. I look forward to your response.
Mario
I worked on behalf of HP. -
Z580 - touchpad doesn't work properly on Windows 10
hello. I did Windows 10 clean install on my Z580 and I noticed there are some minor flaws regarding touchpad, namely: 1. one finger edge scrolling doesn't work. only two finger scrolling is available2. two finger tap doesn't open context menu, even though the option is enabled in Synaptics settings the touchpad is made by Synaptics and I'm using drivers that got installed via Windows Update (version 19.0.9.5)
It is really strange. Have you installed something that can have negative influence on well working Synaptics driver?
> What can I do to ensure that the problem is solved for every time?
Thats good question. Only thing you can do and be sure everything will be OK is to install original recovery image you got with your notebook. At this point everything should work properly.
I don't know what are you doing later but for me it sounds like some drivers conflict.
Sorry but on this virtual way it is not possible to be more specific. -
DVD-Rom drive in Satellite C655-S5128 not working properly in Windows 8
I recently upgraded my system from Windows 7 to Windows 8. However, the DVD-Rom drive after the upgrade no longer works properly -- it now treats the pre-recorded disk as if it was completely blank. I tried reinstalling the Toshiba Disc Creator, but that did not work.
Any solution?You apparently did not use the Toshiba Upgrade Assistant in upgrading to Windows 8. See HERE for DVD and Disk Creator problems occurring during the upgrade and solutions.
C.B.
Toshiba Sat. C75D-B7260 Win 8.1 64 Bit--Toshiba Sat. L775D-S7132 Win 7 HP SP1 64 Bit and Win 10 PRO Technical Preview--Toshiba Sat. L305-S5921 Win Vista SP2 32 Bit -
Gadgets not working properly in windows 7
For some reason the gadgets in windows 7 are not working properly. I can open the gadget gallery and select a gadget, but it doesn't show the entire thing. For example i select the clock, and all it shows is a black square with the red ticking hand frozen. Another example is the CPU meter. All it shows when i click on it is a little white square where the meter should be. I can still close the gadgets by way of the close button on each gadget though (the calendar doesn't appear at all). UAC is turned on and i have rebooted the pc, same thing still happening. (It is Enterprise edition if that makes any difference). If anyone could help that would be great!
Have you come across the problem where some of the Gadgets that you added to the Sidebar/Desktop are not displayed correctly? For example, the clock gadget may be displayed as a black square containing only the "seconds" hand. Other gadgets may show up as
white rectangles with an information (i) icon and a plus sign. The settings button next to the gadget does not work, but the
x to close does. Here are some screenshots:
The above-mentioned behavior is caused due to the following reasons:
A subkey with foreign/ASCII character exists under the "Zones" registry key.
XML registration is missing in the system.
Use these steps to fix the problem:
Fix for Case 1
1. Click Start, type Regedit.exe and press {ENTER}
2. Navigate to the following branch:
HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Internet Settings \ Zones
3. Under the Zones key, delete the subkey shown with an ASCII character:
4. Exit the Registry Editor.
5. Logoff and login back to your user account.
Fix for Case 2
1. Open an
elevated Command Prompt window. To open an elevated (admin) Command Prompt, click Start, click All Programs, click Accessories,
right-click Command Prompt, and then click Run as administrator.
2. In the Command Prompt window, type the following command and press ENTER:
regsvr32 msxml3.dll
3. Similarly, run these commands:
regsvr32 scrrun.dll
regsvr32 jscript.dll
You should see the DllRegisterServer in <filename> succeeded message for each command executed.
4. Logoff and login back to your user account and see if the Gadgets display correctly.
Maybe you are looking for
-
Data Service System In Visual Composer 7.1
Hello,Experts: Recently ,i am focusing on the mirgration function of SAP NetWeaver,and visual composer is among them . In netweaver 2004s enterpise portal ,i have done the system connection between Enterpise Portal and ECC and BW ,and the system alia
-
Not able to CREATE FORUM, or DELETE PRODUCT in discussion forum
Hi, I have deployed Discussion Forum provided by Oracle. For deployment I have followed the document provided, which is available on http://www.oracle.com/technology/products/ias/portal/html/installing.integration.v2.html Our application running on
-
BC chat support has just told me BC does not support eCommerce for mobile site versions, so: I have a desktop version of my site that sells products, then I created a mobile version to sell products, but when I access the site on my phone, all the pa
-
Please tell me How to access the COS NAMING?
In COS Naming, I create a new context as follows: Initial context | QuerryApp (a new Context) | OrderQuery (a object) But I don't know how to access the "OrderQuery"(using jdk 1.3.1). Please help me!! email: [email protected]
-
What is this error - #108?
Hey, I keep getting this and it says it cannot render. I am trying to do my closing credits for my film with no luck. Chris