CRM 价格批导2<上一个太多冗余>
INCLUDE:LCRM_MKTPL_COND_IFF39
*----------------------------------------------------------------------*
***INCLUDE LCRM_MKTPL_COND_IFF39 .
*----------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Form add_cond_messages_to_return
*&---------------------------------------------------------------------*
* Get messages from condition maintenance and append them
* to the return table
*----------------------------------------------------------------------*
FORM add_cond_messages_to_return
TABLES px_t_return STRUCTURE bapiret2
USING pi_hlog TYPE balloghndl. DATA:
ls_hlog TYPE bal_s_lfil, " filter for log header
lr_log_handle TYPE bal_s_logh, " range for handle
lt_msg_handle TYPE bal_t_msgh,
ls_msg_handle TYPE balmsghndl,
ls_msg TYPE bal_s_msg,
ls_return TYPE bapiret2. * filter for log handle
lr_log_handle-sign = 'I'.
lr_log_handle-option = 'EQ'.
lr_log_handle-low = pi_hlog.
INSERT lr_log_handle INTO TABLE ls_hlog-log_handle. * search the log for messages
CALL FUNCTION 'BAL_GLB_SEARCH_MSG'
EXPORTING
i_s_log_filter = ls_hlog
IMPORTING
e_t_msg_handle = lt_msg_handle
EXCEPTIONS
msg_not_found =
OTHERS = .
IF sy-subrc = .
* no message found
ELSEIF sy-subrc <> .
PERFORM append_return TABLES px_t_return.
ELSE.
LOOP AT lt_msg_handle INTO ls_msg_handle.
* Retrieve messages from the condition log
CALL FUNCTION 'BAL_LOG_MSG_READ'
EXPORTING
i_s_msg_handle = ls_msg_handle
IMPORTING
e_s_msg = ls_msg
EXCEPTIONS
log_not_found =
msg_not_found =
OTHERS = .
IF sy-subrc <> .
PERFORM append_return TABLES px_t_return.
ELSE.
* Abort messages should not be sent back in the application log
* Condition Technique returns A messages for Error messages...
* Abort message should really abort and not bring back messages...
IF ls_msg-msgty = 'A'.
ls_msg-msgty = 'E'.
ENDIF. * Add message to the return table
ls_return-type = ls_msg-msgty.
ls_return-id = ls_msg-msgid.
ls_return-number = ls_msg-msgno.
ls_return-message_v1 = ls_msg-msgv1.
ls_return-message_v2 = ls_msg-msgv2.
ls_return-message_v3 = ls_msg-msgv3.
ls_return-message_v4 = ls_msg-msgv4.
MESSAGE ID ls_msg-msgid
TYPE 'I'
NUMBER ls_msg-msgno
WITH ls_msg-msgv1
ls_msg-msgv1
ls_msg-msgv1
ls_msg-msgv1
INTO ls_return-message.
APPEND ls_return TO px_t_return.
ENDIF.
ENDLOOP.
ENDIF. ENDFORM. " add_cond_messages_to_return
INCLUDE LCRM_MKTPL_COND_IFF62.
*----------------------------------------------------------------------*
***INCLUDE LCRM_MKTPL_COND_IFF62 .
*----------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Form append_return
*&---------------------------------------------------------------------*
* Append message to the table PX_T_RETURN
*----------------------------------------------------------------------*
FORM append_return TABLES px_t_return STRUCTURE bapiret2. DATA: l_s_return TYPE bapiret2,
lv_msgty TYPE SYMSGTY. * Abort messages should not be sent back in the application log
* Condition Technique returns A messages for Error messages... IF sy-msgty = 'A'.
lv_msgty = 'E'.
ELSE.
lv_msgty = sy-msgty.
ENDIF. CALL FUNCTION 'BALW_BAPIRETURN_GET2'
EXPORTING
type = lv_msgty
cl = sy-msgid
number = sy-msgno
par1 = sy-msgv1
par2 = sy-msgv2
par3 = sy-msgv3
par4 = sy-msgv4
IMPORTING
return = l_s_return. APPEND l_s_return TO px_t_return. ENDFORM. " append_return
MAIN PROGRAM :YLYTEST05
*&---------------------------------------------------------------------*
*& Report YCOND_INBOUND
*&
*&---------------------------------------------------------------------*
*&Service Pricing: Org/ZZZMODENO/PRICE_GRP/ZREPCODE/PRODUCT/用户量贩店DIS服务商服务定价批导
*&
*&---------------------------------------------------------------------* REPORT YLYTEST05 LINE-SIZE . *----------------------------------------------------------------------*
* Constants
*----------------------------------------------------------------------*
CONSTANTS:
** Condition technique: applications
C_KAPPL_CRM TYPE /SAPCND/APPLICATION VALUE 'CRM'.", TYPES: BEGIN OF TY_DOC,
P_SORG TYPE CRMT_SALES_ORG,
P_DISCHL TYPE CRMT_DISTRIBUTION_CHANNEL,
P_ZZZMODENO TYPE ZMODENO,
P_ZREPCODE TYPE ZRPCODE,
P_BP TYPE BU_PARTNER,
P_PROD TYPE COMT_PRODUCT_ID,
P_PGRP TYPE CRMT_PRICE_GRP,
P_KBETR TYPE KBETR,
P_KMEIN TYPE KMEIN,
P_KPEIN TYPE KPEIN,
P_KONWA TYPE KONWA,
P_BDATE TYPE D,
P_EDATE TYPE D,
HIERARCHY_ID TYPE COMT_HIERARCHY_ID,
CATEGORY_ID TYPE COMT_CATEGORY_ID,
END OF TY_DOC. DATA: WA_DOC TYPE TY_DOC,
IT_DOC TYPE STANDARD TABLE OF TY_DOC. CLEAR: WA_DOC, IT_DOC. DATA:TIMESTAMP_TO TYPE /SAPCND/TIMESTAMP_TO,
TIMESTAMP_TO_A TYPE TIMESTAMP,
TIMESTAMP_TO_B TYPE TIMESTAMP,
TO_DAY TYPE D.
CLEAR: TIMESTAMP_TO, TO_DAY, TIMESTAMP_TO_A, TIMESTAMP_TO_B. TYPES: BEGIN OF TY_ERR,
INX TYPE I,
ERR_LOG TYPE STRING,
END OF TY_ERR. DATA: IT_ERR TYPE STANDARD TABLE OF TY_ERR,
WA_ERR TYPE TY_ERR.
CLEAR:IT_ERR, WA_ERR. DATA:
TIM TYPE T,
TZ TYPE TTZZ-TZONE.
“TZ = SY-ZONLO.
TZ = 'UTC'.
*******************************************************************
* User-defined Include-files (if necessary). *
******************************************************************* *
INCLUDE LCRM_MKTPL_COND_IFF39. INCLUDE LCRM_MKTPL_COND_IFF62. TYPES:BEGIN OF ZCRM_MKTPL_COND_IF_CUST_DATAX,
KAPPL TYPE CRM_MKTPL_KAPPL_CDET,
KVEWE TYPE CRM_MKTPL_KVEWE_CDET,
KSCHL TYPE CRM_MKTPL_KSCHL_CDET,
KOTABNR TYPE /SAPCND/COND_TABLE_ID,
PRODUCT_GUID TYPE COMT_PRODUCT_GUID,
SALES_ORG TYPE CRMT_SALES_ORG,
CHANNEL TYPE CRMT_DISTRIBUTION_CHANNEL,
ZZZMODENO TYPE ZMODENO,
ZREPCODE TYPE ZRPCODE,
PARTNER TYPE BU_PARTNER_GUID,
BILL_TO_PARTY TYPE CRMT_BILL_TO_PARTY,
PRICE_GRP TYPE CRMT_PRICE_GRP,
KMEIN TYPE KMEIN,
KPEIN TYPE PRCT_COND_PRICING_UNIT,
KONWA TYPE KONWA,
TIMESTAMP_FROM TYPE TIMESTAMP,
TIMESTAMP_TO TYPE TIMESTAMP,
KBETR_PRT TYPE KBETR,
RELEASE_STATUS TYPE /SAPCND/RELEASE_STATUS,
HIERARCHY_GUID TYPE COMT_HIERARCHY_GUID,
HIER_CAT_GUID TYPE COMT_CATEGORY_GUID,
END OF ZCRM_MKTPL_COND_IF_CUST_DATAX.
DATA:ZCRM_MKTPL_COND_IF_CUST_DATAX TYPE ZCRM_MKTPL_COND_IF_CUST_DATAX. DATA:
L_T_CUST_DATAX TYPE TABLE OF ZCRM_MKTPL_COND_IF_CUST_DATAX,
L_S_CUST_DATAX TYPE ZCRM_MKTPL_COND_IF_CUST_DATAX,
L_START TYPE TIMESTAMP,
L_END TYPE TIMESTAMP,
L_CGEN_TYPE TYPE CRM_MKTPL_CGEN_TYPE. DATA:L_T_COND_SESSION TYPE TABLE OF CRM_MKTPL_COND_IF_CONDSESSION.
DATA:L_S_COND_SESSION TYPE CRM_MKTPL_COND_IF_CONDSESSION.
DATA: LS_BAL_LOG TYPE BAL_S_LOG.
DATA:L_HLOG TYPE BALLOGHNDL.
DATA:LV_RESULT TYPE SYSUBRC.
DATA:LS_T_RETURN TYPE STANDARD TABLE OF BAPIRET2.
DATA:PE_SUBRC TYPE SY-SUBRC.
DATA:TMP_COND_SESSION TYPE /SAPCND/MAINT_SESSION_ID. PARAMETERS:
P_FILE LIKE RLGRAP-FILENAME. AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.
PERFORM SELECT_FILE. START-OF-SELECTION.
PERFORM IMPORT_DATA. IF IT_ERR IS INITIAL. CALL FUNCTION 'BAL_LOG_CREATE'
EXPORTING
I_S_LOG = LS_BAL_LOG
IMPORTING
E_LOG_HANDLE = L_HLOG
EXCEPTIONS
OTHERS = .
* initialize condition session
CALL FUNCTION '/SAPCND/MNT_INIT_OW'
EXPORTING
I_APPLICATION = C_KAPPL_CRM
I_HLOG = L_HLOG
I_MAINT_CONTEXT = 'GCM'
I_GROUPNAME = 'ZHSI001' "/SAPCND/GROUPT_I表里找得
IMPORTING
E_HSESSION = TMP_COND_SESSION
E_RESULT = LV_RESULT
EXCEPTIONS
EXC_STOP_WORK =
EXC_RFC =
OTHERS = . L_S_COND_SESSION-SESSION = TMP_COND_SESSION.
L_S_COND_SESSION-KAPPL = 'CRM'.
L_S_COND_SESSION-GROUP = 'GCM'.
APPEND L_S_COND_SESSION TO L_T_COND_SESSION. LOOP AT IT_DOC INTO WA_DOC. CLEAR L_S_CUST_DATAX.
L_S_CUST_DATAX-KAPPL = 'CRM'.
L_S_CUST_DATAX-KVEWE = 'PR'.
L_S_CUST_DATAX-KSCHL = 'ZJP1'."/SAPCND/GROUPT_I表里找得 L_S_CUST_DATAX-SALES_ORG = WA_DOC-P_SORG.
L_S_CUST_DATAX-CHANNEL = WA_DOC-P_DISCHL. DATA:LS_PRODGUID TYPE COMT_PRODUCT_GUID.
SELECT SINGLE PRODUCT_GUID
INTO LS_PRODGUID
FROM COMM_PRODUCT
WHERE PRODUCT_ID = WA_DOC-P_PROD.
L_S_CUST_DATAX-PRODUCT_GUID = LS_PRODGUID. SELECT SINGLE CATEGORY_GUID
INTO L_S_CUST_DATAX-HIER_CAT_GUID
FROM COMM_CATEGORY
WHERE CATEGORY_ID = WA_DOC-CATEGORY_ID. SELECT SINGLE UNIT
INTO WA_DOC-P_KMEIN
FROM COMM_PR_UNIT
WHERE PRODUCT_GUID = LS_PRODGUID
AND IS_BASE_UNIT = 'X'.
IF SY-SUBRC <> .
SELECT SINGLE UNIT
INTO WA_DOC-P_KMEIN
FROM COMM_PR_UNIT
WHERE PRODUCT_GUID = LS_PRODGUID
AND IS_BASE_UNIT = ''.
ENDIF. L_S_CUST_DATAX-PRICE_GRP = WA_DOC-P_PGRP. L_S_CUST_DATAX-KOTABNR = 'CUS00011'.
L_S_CUST_DATAX-KPEIN = .
L_S_CUST_DATAX-KMEIN = WA_DOC-P_KMEIN.
L_S_CUST_DATAX-ZZZMODENO = WA_DOC-P_ZZZMODENO.
L_S_CUST_DATAX-ZREPCODE = WA_DOC-P_ZREPCODE.
L_S_CUST_DATAX-KONWA = WA_DOC-P_KONWA.
L_S_CUST_DATAX-KBETR_PRT = WA_DOC-P_KBETR.
L_S_CUST_DATAX-RELEASE_STATUS = SPACE. CLEAR TIM. CONVERT DATE WA_DOC-P_BDATE TIME TIM
INTO TIME STAMP L_S_CUST_DATAX-TIMESTAMP_FROM TIME ZONE TZ. TIM = ''. CONVERT DATE WA_DOC-P_EDATE TIME TIM
INTO TIME STAMP L_S_CUST_DATAX-TIMESTAMP_TO TIME ZONE TZ. APPEND L_S_CUST_DATAX TO L_T_CUST_DATAX.
CLEAR L_S_CUST_DATAX. ENDLOOP. PERFORM ZMNT_COND_RECORDS_CD TABLES L_T_CUST_DATAX
LS_T_RETURN
L_T_COND_SESSION
USING
L_START
L_END
L_HLOG
CHANGING PE_SUBRC.
CHECK PE_SUBRC IS INITIAL. DATA:LV_SESSION LIKE LINE OF L_T_COND_SESSION.
DATA:I_SESSION TYPE /SAPCND/MAINT_SESSION_ID.
READ TABLE L_T_COND_SESSION INTO LV_SESSION INDEX .
I_SESSION = LV_SESSION-SESSION.
* VIII. save the changes
CALL FUNCTION '/SAPCND/MNT_SAVE_OW'
EXPORTING
I_HSESSION = I_SESSION
I_HLOG = L_HLOG
* i_with_commit = 'X'
IMPORTING
E_RESULT = LV_RESULT
EXCEPTIONS
EXC_STOP_WORK =
EXC_RFC =
EXC_UPDATING_DATABASE =
EXC_CREATING_SCALE_FIELDNAME =
EXC_UNEXPECTED_ERROR =
OTHERS = .
IF SY-SUBRC <> OR LV_RESULT > .
ENDIF. COMMIT WORK. PERFORM OUTPUT_RESULT. ELSE. LOOP AT IT_ERR INTO WA_ERR.
WRITE :/ '行:', WA_ERR-INX, WA_ERR-ERR_LOG.
ENDLOOP. ENDIF. *----------------------------------------------------------------------*
***INCLUDE LCRM_MKTPL_COND_IFF93 .
*----------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Form zmnt_cond_records_cd
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM ZMNT_COND_RECORDS_CD
TABLES PI_T_CUST_DATAX STRUCTURE ZCRM_MKTPL_COND_IF_CUST_DATAX
PX_T_RETURN STRUCTURE BAPIRET2
L_T_COND_SESSION STRUCTURE CRM_MKTPL_COND_IF_CONDSESSION
USING
PI_START TYPE TIMESTAMP
PI_END TYPE TIMESTAMP
L_HLOG TYPE BALLOGHNDL
CHANGING PE_SUBRC TYPE SY-SUBRC. DATA: L_SUBRC TYPE SY-SUBRC,
L_RESULT TYPE SY-SUBRC,
L_OVERLAP TYPE C,
L_LOCKING TYPE C,
L_T_WORKING_SET TYPE REF TO DATA,
L_T_WORKING_SET_OLD TYPE REF TO DATA,
L_T_VARNUMH_OVERLAP TYPE TABLE OF CRM_MKTPL_COND_IF_VARNUMH,
L_T_RETURN TYPE TABLE OF BAPIRET2. * loop at application
LOOP AT L_T_COND_SESSION.
* ----- get old data from the condition buffer
PERFORM GET_WORKING_SET TABLES PX_T_RETURN
USING L_T_COND_SESSION
SPACE
L_HLOG
CHANGING L_T_WORKING_SET_OLD
L_SUBRC.
CHECK L_SUBRC IS INITIAL. * ----- build working set
PERFORM BUILD_WORKING_SET TABLES PI_T_CUST_DATAX
USING L_T_COND_SESSION
PI_START
PI_END
L_HLOG
L_T_WORKING_SET_OLD
CHANGING L_T_WORKING_SET
L_SUBRC.
CHECK L_SUBRC IS INITIAL. IF NOT L_SUBRC IS INITIAL.
PE_SUBRC = .
EXIT.
ENDIF. * ----- pass new working set to the condition buffer
PERFORM MAINTAIN_CONDITION_RECORDS TABLES PX_T_RETURN
USING L_T_COND_SESSION
L_T_WORKING_SET
L_HLOG
CHANGING L_RESULT
L_SUBRC.
IF NOT L_SUBRC IS INITIAL.
* error in the condition maintenance
PE_SUBRC = .
EXIT.
ELSE.
IF L_RESULT LE .
* everything o.k. -> notify changes and continue CONTINUE. " -> next application
ENDIF.
ENDIF. IF L_RESULT GT .
* problems have occured, possibly due to overlap conflicts
*------ do overlap conflict resolution ENDIF. ENDLOOP. * add messages from condition log to return table
PERFORM ADD_COND_MESSAGES_TO_RETURN TABLES PX_T_RETURN
USING L_HLOG. ENDFORM. " zmnt_cond_records_cd *&---------------------------------------------------------------------*
*& Form get_working_set
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->PX_T_RETURN text
* -->PI_S_COND_SESSION text
* -->PI_INCL_DEL_RECORDS text
* -->PI_HLOG text
* -->PE_T_WORKING_SET text
*----------------------------------------------------------------------*
FORM GET_WORKING_SET
TABLES PX_T_RETURN STRUCTURE BAPIRET2
USING PI_S_COND_SESSION TYPE CRM_MKTPL_COND_IF_CONDSESSION
PI_INCL_DEL_RECORDS TYPE XFELD
PI_HLOG TYPE BALLOGHNDL
CHANGING PE_T_WORKING_SET TYPE REF TO DATA
PE_SUBRC TYPE SY-SUBRC. DATA: LS_ATTRIB_VALUE TYPE /SAPCND/ATTRIB_VALUE_INT,
LT_ATTRIB_VALUE TYPE /SAPCND/T_ATTRIB_VALUE_INT,
L_RESULT TYPE SY-SUBRC,
L_SUPPR_DEL_RECORDS TYPE /SAPCND/BOOLEAN,
L_MSGTEXT(). CLEAR PE_T_WORKING_SET. * Build range for selection
LS_ATTRIB_VALUE-FIELDNAME = 'KAPPL'.
LS_ATTRIB_VALUE-VALUE = PI_S_COND_SESSION-KAPPL.
APPEND LS_ATTRIB_VALUE TO LT_ATTRIB_VALUE.
LS_ATTRIB_VALUE-FIELDNAME = 'KVEWE'.
LS_ATTRIB_VALUE-VALUE = 'PR'.
APPEND LS_ATTRIB_VALUE TO LT_ATTRIB_VALUE. * include/suppress the deleted records
IF PI_INCL_DEL_RECORDS IS INITIAL.
L_SUPPR_DEL_RECORDS = 'X'.
ENDIF. CALL FUNCTION '/SAPCND/MNT_GET_WORKING_SET_OW'
EXPORTING
I_HSESSION = PI_S_COND_SESSION-SESSION
I_HLOG = PI_HLOG
* I_CALL_FIELD_CHECK = ' '
I_SUPPRESS_DELETED_RECORDS = L_SUPPR_DEL_RECORDS
* IT_ATTRIB_SELECTION_EXT =
IT_ATTRIB_VALUE_INT = LT_ATTRIB_VALUE
IMPORTING
ET_WORKING_SET_INT = PE_T_WORKING_SET
* ET_WORKING_SET_EXT =
E_RESULT = L_RESULT
EXCEPTIONS
EXC_STOP_WORK =
EXC_RFC =
EXC_CONV_JAVA =
EXC_ATTR_CONV =
EXC_FIELD_CHECK =
EXC_UPDATING_WORKING_SET =
EXC_NOT_INT_AND_EXT =
EXC_EXTERNAL_ONLY =
EXC_CONVERT_RANGES =
EXC_CREATING_OBJECT_NAMES =
EXC_STOP_WORK_BADI =
EXC_IMPLEMENTATION_MISSING =
EXC_ADDING_DEBUG_TRACE_MSG =
EXC_BAL_LOG =
OTHERS = .
IF SY-SUBRC <> .
PE_SUBRC = SY-SUBRC.
* Collect message from /SAPCND/MNT_GET_WORKING_SET_OW
PERFORM APPEND_RETURN TABLES PX_T_RETURN.
* Send message: System has stopped the processing
MESSAGE E025(CRM_MKTPL_COND_IF)
WITH '/SAPCND/MNT_GET_WORKING_SET_OW'
INTO L_MSGTEXT.
PERFORM APPEND_RETURN TABLES PX_T_RETURN.
ENDIF. ENDFORM. " get_working_set_cd *&---------------------------------------------------------------------*
*& Form build_working_set
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->PI_T_CUST_DATAX text
* -->PI_S_COND_SESSION text
* -->PI_START text
* -->PI_END text
* -->PI_HLOG text
* -->PI_T_WORKING_SET_OLD text
* -->PE_T_WORKING_SET text
*----------------------------------------------------------------------*
FORM BUILD_WORKING_SET
TABLES PI_T_CUST_DATAX STRUCTURE ZCRM_MKTPL_COND_IF_CUST_DATAX
USING PI_S_COND_SESSION TYPE CRM_MKTPL_COND_IF_CONDSESSION
PI_START TYPE TIMESTAMP
PI_END TYPE TIMESTAMP
PI_HLOG TYPE BALLOGHNDL
PI_T_WORKING_SET_OLD TYPE REF TO DATA
CHANGING PE_T_WORKING_SET TYPE REF TO DATA
PE_SUBRC TYPE SY-SUBRC. DATA: L_WS_NAME_BROAD TYPE /SAPCND/WORKING_SET_NAME. DATA: L_WORKING_SET_ITEM TYPE REF TO DATA,
L_WORKING_SET_ITEM_BROAD TYPE REF TO DATA. FIELD-SYMBOLS: <LT_WORKING_SET> TYPE TABLE,
<LT_WORKING_SET_OLD> TYPE TABLE,
<LS_WORKING_SET_ITEM> TYPE ANY,
<LS_WORKING_SET_ITEM_BROAD> TYPE ANY. * get names of working set (broad working set):
CALL FUNCTION '/SAPCND/GEN_WORKING_SET_NAME'
EXPORTING
I_APPLICATION = PI_S_COND_SESSION-KAPPL
IMPORTING
E_WORKING_SET_NAME_INT = L_WS_NAME_BROAD. * get pointer to the imported working set
ASSIGN PI_T_WORKING_SET_OLD->* TO <LT_WORKING_SET_OLD>.
* get pointers to the exporting working sets
CREATE DATA PE_T_WORKING_SET LIKE <LT_WORKING_SET_OLD>.
ASSIGN PE_T_WORKING_SET->* TO <LT_WORKING_SET>. CREATE DATA L_WORKING_SET_ITEM LIKE LINE OF <LT_WORKING_SET_OLD>.
ASSIGN L_WORKING_SET_ITEM->* TO <LS_WORKING_SET_ITEM>. CREATE DATA L_WORKING_SET_ITEM_BROAD TYPE (L_WS_NAME_BROAD). * loop at products/sales_org/distribution_channel/partner_function
LOOP AT PI_T_CUST_DATAX. * fill working set for one item
PERFORM BUILD_WORKING_SET_ITEM USING PI_S_COND_SESSION
PI_T_CUST_DATAX
PI_START
PI_END
PI_HLOG
L_WS_NAME_BROAD
CHANGING L_WORKING_SET_ITEM_BROAD
PE_SUBRC. ASSIGN L_WORKING_SET_ITEM_BROAD->*
TO <LS_WORKING_SET_ITEM_BROAD>.
MOVE-CORRESPONDING <LS_WORKING_SET_ITEM_BROAD>
TO <LS_WORKING_SET_ITEM>.
APPEND <LS_WORKING_SET_ITEM> TO <LT_WORKING_SET>. ENDLOOP. " at pi_t_cust_datax ENDFORM. " build_working_set_cd *&---------------------------------------------------------------------*
*& Form build_working_set_item
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->PI_S_COND_SESSION text
* -->PI_S_CUST_DATAX text
* -->PI_START text
* -->PI_END text
* -->PI_HLOG text
* -->PI_WS_NAME text
* -->PE_WORKING_SET_ITEM text
*----------------------------------------------------------------------*
FORM BUILD_WORKING_SET_ITEM
USING PI_S_COND_SESSION TYPE CRM_MKTPL_COND_IF_CONDSESSION
PI_S_CUST_DATAX TYPE ZCRM_MKTPL_COND_IF_CUST_DATAX
PI_START TYPE TIMESTAMP
PI_END TYPE TIMESTAMP
PI_HLOG TYPE BALLOGHNDL
PI_WS_NAME TYPE /SAPCND/WORKING_SET_NAME
CHANGING PE_WORKING_SET_ITEM TYPE REF TO DATA
PE_SUBRC TYPE SY-SUBRC. * internal working sets
FIELD-SYMBOLS: <LS_WORKING_SET_ITEM> TYPE ANY. * field values (in alphabetic order)
FIELD-SYMBOLS:
<BILL_TO_PARTY> TYPE CRMT_BILL_TO_PARTY,
<CLIENT> TYPE MANDT,
<DIS_CHANNEL> TYPE CRMT_DISTRIBUTION_CHANNEL,
<DIVISION> TYPE CRMT_DIVISION,
<HIER_NO_GUID> TYPE BU_HIERNR_GUID,
<HIER_NODE_GUID> TYPE BU_NODE_GUID,
<KAPPL> TYPE /SAPCND/APPLICATION,
<KOTABNR> TYPE /SAPCND/COND_TABLE_ID,
<KSCHL> TYPE /SAPCND/COND_TYPE,
<KVEWE> TYPE /SAPCND/USAGE,
<PARTNER_GUID> TYPE BU_PARTNER_GUID,
<PAYER> TYPE CRMT_PAYER,
<ZZZMODENO> TYPE ZMODENO,
<ZREPCODE> TYPE ZRPCODE,
<KMEIN> TYPE KMEIN,
<KPEIN> TYPE KPEIN,
<KONWA> TYPE KONWA,
<RELEASE_STATUS> TYPE /SAPCND/RELEASE_STATUS,
<KBETR_PRT> TYPE PRCT_COND_RATE,
<PRICE_GRP> TYPE CRMT_PRICE_GRP,
<PRODUCT> TYPE COMT_PRODUCT_GUID,
<SALES_ORG> TYPE CRMT_SALES_ORG,
<SHIP_TO_PARTY> TYPE CRMT_SHIP_TO_PARTY,
<SOLD_TO_PARTY> TYPE CRMT_SOLD_TO_PARTY,
<TIMESTAMP_FROM> TYPE /SAPCND/TIMESTAMP_FROM,
<TIMESTAMP_TO> TYPE /SAPCND/TIMESTAMP_TO,
<HIER_CAT_GUID> TYPE COMT_CATEGORY_GUID,
<VARNUMH> TYPE /SAPCND/COND_TABLE_ENTRY_ID. * create internal working sets
CREATE DATA PE_WORKING_SET_ITEM TYPE (PI_WS_NAME).
ASSIGN PE_WORKING_SET_ITEM->* TO <LS_WORKING_SET_ITEM>. * assignments (in alphabetic order)
ASSIGN COMPONENT 'ZZZMODENO' OF STRUCTURE <LS_WORKING_SET_ITEM>
TO <ZZZMODENO>.
ASSIGN COMPONENT 'CLIENT' OF STRUCTURE <LS_WORKING_SET_ITEM>
TO <CLIENT>.
ASSIGN COMPONENT 'ZREPCODE' OF STRUCTURE <LS_WORKING_SET_ITEM>
TO <ZREPCODE>.
ASSIGN COMPONENT 'DIVISION' OF STRUCTURE <LS_WORKING_SET_ITEM>
TO <DIVISION>.
ASSIGN COMPONENT 'HIER_NO_GUID' OF STRUCTURE <LS_WORKING_SET_ITEM>
TO <HIER_NO_GUID>.
ASSIGN COMPONENT 'HIER_NODE_GUID' OF STRUCTURE <LS_WORKING_SET_ITEM>
TO <HIER_NODE_GUID>.
ASSIGN COMPONENT 'KAPPL' OF STRUCTURE <LS_WORKING_SET_ITEM>
TO <KAPPL>.
ASSIGN COMPONENT 'KOTABNR' OF STRUCTURE <LS_WORKING_SET_ITEM>
TO <KOTABNR>.
ASSIGN COMPONENT 'KSCHL' OF STRUCTURE <LS_WORKING_SET_ITEM>
TO <KSCHL>.
ASSIGN COMPONENT 'KVEWE' OF STRUCTURE <LS_WORKING_SET_ITEM>
TO <KVEWE>.
ASSIGN COMPONENT 'PARTNER_GUID' OF STRUCTURE <LS_WORKING_SET_ITEM>
TO <PARTNER_GUID>.
ASSIGN COMPONENT 'PAYER' OF STRUCTURE <LS_WORKING_SET_ITEM>
TO <PAYER>.
ASSIGN COMPONENT 'KMEIN' OF STRUCTURE <LS_WORKING_SET_ITEM>
TO <KMEIN>.
ASSIGN COMPONENT 'KPEIN' OF STRUCTURE <LS_WORKING_SET_ITEM>
TO <KPEIN>.
ASSIGN COMPONENT 'KONWA' OF STRUCTURE <LS_WORKING_SET_ITEM>
TO <KONWA>.
ASSIGN COMPONENT 'PRODUCT' OF STRUCTURE <LS_WORKING_SET_ITEM>
TO <PRODUCT>.
ASSIGN COMPONENT 'SALES_ORG' OF STRUCTURE <LS_WORKING_SET_ITEM>
TO <SALES_ORG>.
ASSIGN COMPONENT 'SHIP_TO_PARTY' OF STRUCTURE <LS_WORKING_SET_ITEM>
TO <SHIP_TO_PARTY>.
ASSIGN COMPONENT 'SOLD_TO_PARTY' OF STRUCTURE <LS_WORKING_SET_ITEM>
TO <SOLD_TO_PARTY>.
ASSIGN COMPONENT 'KBETR' OF STRUCTURE <LS_WORKING_SET_ITEM>
TO <KBETR_PRT>.
ASSIGN COMPONENT 'PRICE_GRP' OF STRUCTURE <LS_WORKING_SET_ITEM>
TO <PRICE_GRP>. ASSIGN COMPONENT 'TIMESTAMP_FROM' OF STRUCTURE
<LS_WORKING_SET_ITEM> TO <TIMESTAMP_FROM>.
ASSIGN COMPONENT 'TIMESTAMP_TO' OF STRUCTURE
<LS_WORKING_SET_ITEM> TO <TIMESTAMP_TO>.
ASSIGN COMPONENT 'VARNUMH' OF STRUCTURE <LS_WORKING_SET_ITEM>
TO <VARNUMH>.
ASSIGN COMPONENT 'RELEASE_STATUS' OF STRUCTURE <LS_WORKING_SET_ITEM>
TO <RELEASE_STATUS>.
ASSIGN COMPONENT 'HIER_CAT_GUID' OF STRUCTURE <LS_WORKING_SET_ITEM>
TO <HIER_CAT_GUID>. * assign condition record fields
* create new varnumh
CALL FUNCTION 'GUID_CREATE'
IMPORTING
EV_GUID_16 = <VARNUMH>.
* other fields
<CLIENT> = SY-MANDT.
* <TIMESTAMP_FROM> = PI_START.
* <TIMESTAMP_TO> = PI_END.
<KAPPL> = PI_S_CUST_DATAX-KAPPL.
<KVEWE> = PI_S_CUST_DATAX-KVEWE.
<KOTABNR> = PI_S_CUST_DATAX-KOTABNR.
<KSCHL> = PI_S_CUST_DATAX-KSCHL.
<SALES_ORG> = PI_S_CUST_DATAX-SALES_ORG.
* <DIS_CHANNEL> = PI_S_CUST_DATAX-CHANNEL.
* <division> = pi_s_cust_datax-division.
<PRODUCT> = PI_S_CUST_DATAX-PRODUCT_GUID.
<ZZZMODENO> = PI_S_CUST_DATAX-ZZZMODENO.
<ZREPCODE> = PI_S_CUST_DATAX-ZREPCODE.
* <PARTNER_GUID> = PI_S_CUST_DATAX-PARTNER.
* <sold_to_party> = pi_s_cust_datax-sold_to_party.
<KMEIN> = PI_S_CUST_DATAX-KMEIN.
<KPEIN> = PI_S_CUST_DATAX-KPEIN.
<KONWA> = PI_S_CUST_DATAX-KONWA.
<PRICE_GRP> = PI_S_CUST_DATAX-PRICE_GRP.
<KBETR_PRT> = PI_S_CUST_DATAX-KBETR_PRT.
<TIMESTAMP_FROM> = PI_S_CUST_DATAX-TIMESTAMP_FROM.
<TIMESTAMP_TO> = PI_S_CUST_DATAX-TIMESTAMP_TO.
<RELEASE_STATUS> = PI_S_CUST_DATAX-RELEASE_STATUS.
* <HIER_CAT_GUID> = PI_S_CUST_DATAX-HIER_CAT_GUID.
* <ship_to_party> = pi_s_cust_datax-ship_to_party.
* <BILL_TO_PARTY> = PI_S_CUST_DATAX-BILL_TO_PARTY.
* <payer> = pi_s_cust_datax-payer.
* customer hierarchy
* <HIER_NO_GUID> = PI_S_CUST_DATAX-HIERARCHY_GUID.
* <hier_node_guid> = pi_s_cust_datax-HIER_CAT_GUID. ENDFORM. " build_working_set_item_cd *&---------------------------------------------------------------------*
*& Form maintain_condition_records
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->PX_T_RETURN text
* -->PI_S_COND_SESSION text
* -->PI_T_WORKING_SET text
* -->PE_RESULT text
* -->PE_SUBRC text
*----------------------------------------------------------------------*
FORM MAINTAIN_CONDITION_RECORDS
TABLES PX_T_RETURN STRUCTURE BAPIRET2
USING PI_S_COND_SESSION TYPE CRM_MKTPL_COND_IF_CONDSESSION
PI_T_WORKING_SET TYPE REF TO DATA
PI_HLOG TYPE BALLOGHNDL
CHANGING PE_RESULT TYPE SY-SUBRC
PE_SUBRC TYPE SY-SUBRC. DATA: L_MSGTEXT(). * By default: everything is okay
CLEAR: PE_RESULT,
PE_SUBRC. CALL FUNCTION '/SAPCND/MNT_MAINTAIN_OW'
EXPORTING
I_HSESSION = PI_S_COND_SESSION-SESSION
I_HLOG = PI_HLOG
* IT_WORKING_SET_EXT =
IT_WORKING_SET_INT = PI_T_WORKING_SET
IMPORTING
E_RESULT = PE_RESULT
EXCEPTIONS
EXC_STOP_WORK =
EXC_DEFAULT_VALUE =
EXC_DEFAULT_CHECK =
EXC_CONV_JAVA =
EXC_RFC =
EXC_UPDATING_WORKING_SET =
EXC_STOP_WORK_BADI =
EXC_IMPLEMENTATION_MISSING =
EXC_DELETING_MSG_LOG =
EXC_ADDING_DEBUG_TRACE_MSG =
EXC_PUT_CONSTANTS =
OTHERS = .
IF SY-SUBRC <> .
PE_SUBRC = SY-SUBRC.
* Collect message from /SAPCND/MNT_MAINTAIN_OW
PERFORM APPEND_RETURN TABLES PX_T_RETURN.
* Send message: System has stopped processing
MESSAGE E025(CRM_MKTPL_COND_IF)
WITH '/SAPCND/MNT_MAINTAIN_OW'
INTO L_MSGTEXT.
PERFORM APPEND_RETURN TABLES PX_T_RETURN.
ENDIF. ENDFORM. " maintain_condition_records *&---------------------------------------------------------------------*
*& Form IMPORT_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM IMPORT_DATA .
DATA : ITAB_FILE LIKE ZALSMEX_TABLINE OCCURS WITH HEADER LINE.
REFRESH ITAB_FILE. DATA: LV_DATFM LIKE USR01-DATFM,
LV_YEAR() TYPE C,
LV_MONTH() TYPE C,
LV_DAY() TYPE C.
DATA: ZINX TYPE I.
CLEAR ZINX. CALL FUNCTION 'ZEXCEL_UPLOAD'
EXPORTING
FILENAME = P_FILE
I_BEGIN_COL = ''
I_BEGIN_ROW = ''
I_END_COL = ''
I_END_ROW = ''
TABLES
INTERN = ITAB_FILE
EXCEPTIONS
INCONSISTENT_PARAMETERS =
UPLOAD_OLE =
OTHERS = . LOOP AT ITAB_FILE FROM . CASE ITAB_FILE-COL. WHEN .
IF ITAB_FILE-VALUE <> ''.
CONDENSE ITAB_FILE-VALUE.
SELECT COUNT( * )
FROM COMM_PR_FRG_ROD
WHERE SALES_ORG = ITAB_FILE-VALUE.
IF SY-SUBRC = .
WA_DOC-P_SORG = ITAB_FILE-VALUE.
ELSE.
CONCATENATE WA_ERR-ERR_LOG
'Sales organization not exist !'
INTO WA_ERR-ERR_LOG SEPARATED BY ''.
ENDIF.
ELSE.
CONCATENATE WA_ERR-ERR_LOG
'Sales organization can not be initial !'
INTO WA_ERR-ERR_LOG SEPARATED BY ''.
ENDIF. WHEN .
IF ITAB_FILE-VALUE <> ''.
WA_DOC-P_ZZZMODENO = ITAB_FILE-VALUE.
ELSE.
CONCATENATE WA_ERR-ERR_LOG
'custom model can not be initial !'
INTO WA_ERR-ERR_LOG SEPARATED BY ''.
ENDIF. WHEN ."price group
IF ITAB_FILE-VALUE <> ''.
CONDENSE ITAB_FILE-VALUE.
SELECT COUNT( * )
FROM CRMC_PRICEGRP
WHERE PRICE_GROUP = ITAB_FILE-VALUE.
IF SY-SUBRC = .
WA_DOC-P_PGRP = ITAB_FILE-VALUE.
ELSE.
CONCATENATE WA_ERR-ERR_LOG
'Price group not exist !'
INTO WA_ERR-ERR_LOG SEPARATED BY ''.
ENDIF.
ELSE.
CONCATENATE WA_ERR-ERR_LOG
'Price group can not be initial !'
INTO WA_ERR-ERR_LOG SEPARATED BY ''.
ENDIF. WHEN ."Repair Code
IF ITAB_FILE-VALUE <> ''.
WA_DOC-P_ZREPCODE = ITAB_FILE-VALUE.
ELSE.
CONCATENATE WA_ERR-ERR_LOG
'Repair Code can not be initial !'
INTO WA_ERR-ERR_LOG SEPARATED BY ''.
ENDIF. WHEN ."product id
IF ITAB_FILE-VALUE <> ''.
CONDENSE ITAB_FILE-VALUE.
CALL FUNCTION 'CONVERSION_EXIT_PRID1_INPUT'
EXPORTING
INPUT = ITAB_FILE-VALUE
IMPORTING
OUTPUT = WA_DOC-P_PROD
EXCEPTIONS
LENGHT_ERROR =
CUSTOMIZING_ERROR =
OTHERS = .
SELECT COUNT( * )
FROM COMM_PRODUCT
WHERE PRODUCT_ID = WA_DOC-P_PROD.
IF SY-SUBRC <> .
CONCATENATE WA_ERR-ERR_LOG
'product not exist !'
INTO WA_ERR-ERR_LOG SEPARATED BY ''.
ENDIF. ELSE.
CONCATENATE WA_ERR-ERR_LOG
'product can not be initial !'
INTO WA_ERR-ERR_LOG SEPARATED BY ''. ENDIF. WHEN .
IF ITAB_FILE-VALUE <> '' AND ITAB_FILE-VALUE > '0.00'.
CONDENSE ITAB_FILE-VALUE.
WA_DOC-P_KBETR = ITAB_FILE-VALUE.
* wa_doc-p_KPEIN = itab_file-value.
ELSE.
CONCATENATE WA_ERR-ERR_LOG
'amount is not valid !'
INTO WA_ERR-ERR_LOG SEPARATED BY ''. ENDIF.
WHEN .
IF ITAB_FILE-VALUE <> ''.
CONDENSE ITAB_FILE-VALUE.
WA_DOC-P_KONWA = ITAB_FILE-VALUE.
ELSE.
CONCATENATE WA_ERR-ERR_LOG
'Condition currency can not be initial !'
INTO WA_ERR-ERR_LOG SEPARATED BY ''.
ENDIF.
WHEN .
IF ITAB_FILE-VALUE <> ''.
CONDENSE ITAB_FILE-VALUE.
IF ITAB_FILE-VALUE CA '-/.'.
SEARCH ITAB_FILE-VALUE FOR '-'.
IF SY-SUBRC = .
SPLIT ITAB_FILE-VALUE AT '-' INTO LV_YEAR LV_MONTH LV_DAY.
ELSE.
SEARCH ITAB_FILE-VALUE FOR '/'.
IF SY-SUBRC = .
SPLIT ITAB_FILE-VALUE AT '-' INTO LV_YEAR LV_MONTH LV_DAY.
ELSE.
SEARCH ITAB_FILE-VALUE FOR '.'.
IF SY-SUBRC = .
SPLIT ITAB_FILE-VALUE AT '-' INTO LV_YEAR LV_MONTH LV_DAY.
ENDIF.
ENDIF.
ENDIF.
IF STRLEN( LV_MONTH ) = .
CONCATENATE '' LV_MONTH INTO LV_MONTH.
ENDIF.
IF STRLEN( LV_DAY ) = .
CONCATENATE '' LV_DAY INTO LV_DAY.
ENDIF.
CONCATENATE LV_YEAR LV_MONTH LV_DAY INTO WA_DOC-P_BDATE.
ELSE.
WA_DOC-P_BDATE = ITAB_FILE-VALUE.
ENDIF.
ELSE.
CONCATENATE WA_ERR-ERR_LOG
'Valid From can not be initial !'
INTO WA_ERR-ERR_LOG SEPARATED BY ''.
ENDIF. WHEN .
IF ITAB_FILE-VALUE <> ''.
CONDENSE ITAB_FILE-VALUE.
IF ITAB_FILE-VALUE CA '-/.'.
SEARCH ITAB_FILE-VALUE FOR '-'.
IF SY-SUBRC = .
SPLIT ITAB_FILE-VALUE AT '-' INTO LV_YEAR LV_MONTH LV_DAY.
ELSE.
SEARCH ITAB_FILE-VALUE FOR '/'.
IF SY-SUBRC = .
SPLIT ITAB_FILE-VALUE AT '-' INTO LV_YEAR LV_MONTH LV_DAY.
ELSE.
SEARCH ITAB_FILE-VALUE FOR '.'.
IF SY-SUBRC = .
SPLIT ITAB_FILE-VALUE AT '-' INTO LV_YEAR LV_MONTH LV_DAY.
ENDIF.
ENDIF.
ENDIF.
IF STRLEN( LV_MONTH ) = .
CONCATENATE '' LV_MONTH INTO LV_MONTH.
ENDIF.
IF STRLEN( LV_DAY ) = .
CONCATENATE '' LV_DAY INTO LV_DAY.
ENDIF.
CONCATENATE LV_YEAR LV_MONTH LV_DAY INTO WA_DOC-P_EDATE.
ELSE.
WA_DOC-P_EDATE = ITAB_FILE-VALUE.
ENDIF.
ELSE.
CONCATENATE WA_ERR-ERR_LOG
'Valid To can not be initial !'
INTO WA_ERR-ERR_LOG SEPARATED BY ''.
ENDIF. WHEN OTHERS. ENDCASE.
AT END OF ROW.
APPEND WA_DOC TO IT_DOC.
CLEAR WA_DOC.
ZINX = ZINX + .
IF WA_ERR-ERR_LOG IS NOT INITIAL.
WA_ERR-INX = ZINX.
APPEND WA_ERR TO IT_ERR.
CLEAR WA_ERR.
ENDIF.
ENDAT.
ENDLOOP. ENDFORM. "IMPORT_DATA
*&---------------------------------------------------------------------*
*& Form SELECT_FILE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM SELECT_FILE . CALL FUNCTION 'WS_FILENAME_GET'
EXPORTING
MASK = ',Excel Files,*.xls,All Files,*.*.'()
TITLE = '####'()
IMPORTING
FILENAME = P_FILE
EXCEPTIONS
INV_WINSYS =
NO_BATCH =
SELECTION_CANCEL =
SELECTION_ERROR =
OTHERS = .
IF SY-SUBRC <> AND SY-SUBRC <> .
MESSAGE E100(ZDEV) WITH '#######'().
ENDIF. ENDFORM. " SELECT_FILE
*&---------------------------------------------------------------------*
*& Form OUTPUT_RESULT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM OUTPUT_RESULT . LOOP AT IT_DOC INTO WA_DOC. WRITE:/ '販売組織:', WA_DOC-P_SORG NO-GAP, 'お客様モデル:', WA_DOC-P_ZZZMODENO NO-GAP
,'顧客の区分:',WA_DOC-P_PGRP,'保守コード',WA_DOC-P_ZREPCODE NO-GAP, '製品ID', WA_DOC-P_PROD NO-GROUPING,
'価格', WA_DOC-P_KBETR, '有効開始日', WA_DOC-P_BDATE, '有効終日', WA_DOC-P_EDATE. ENDLOOP. ENDFORM. " OUTPUT_RESULT
CRM 价格批导2<上一个太多冗余>的更多相关文章
- CRM 价格批导
日了,好多代码....COPY别人的,懒得改了 *----------------------------------------------------------------------* *** ...
- 物料主数据批导bapi
创建物料主数据,根据模板不同批导原材料,半成品,成品.可根据实际需求对字段进行增删. report zmmr_bapi_mm01 no standard page HEADING. type-POOL ...
- 【原创】高性能网络编程(二):上一个10年,著名的C10K并发连接问题
1.前言 对于高性能即时通讯技术(或者说互联网编程)比较关注的开发者,对C10K问题(即单机1万个并发连接问题)应该都有所了解."C10K"概念最早由Dan Kegel发布于其个人 ...
- js获取上一个月、下一个月格式为yyyy-mm-dd的日期
/** * 获取上一个月 * * @date 格式为yyyy-mm-dd的日期,如:2014-01-25 */ function getPreMonth(date) { var arr = date. ...
- Android学习之可滑动当前的Activity视图看见上一个活动的视图
先看一下我的效果图吧: 好大的图啊!!! 百度音乐由一个很酷的功能,当前的UI可以滑动,然后看见上一个活动的UI,当时顿时觉得百度的牛人好多啊,能将如此前沿的技术应用到app上.当然如果你熟悉了And ...
- 采购信息记录批导BAPI
转自:https://www.cnblogs.com/freeandeasy/p/11810272.html作者的话: 可以批导创建及修改信息记录的主数据.而且可以对条件中的时间段及其数量等级中的 ...
- Javascript JQuery获取当前元素的兄弟元素/上一个/下一个元素(转)
var chils= s.childNodes; //得到s的全部子节点 var par=s.parentNode; //得到s的父节点 var ns=s.nextSbiling; //获得s的下一个 ...
- windows forms 上一个类似于wpf snoop 的工具: Hawkeye
windows forms 上一个类似于wpf snoop 的工具: Hawkeye 周银辉 WPF上有snoop这样的run time object editor让人用着很爽, 今天搜到了一个for ...
- 修改(table的section与上一个section的间距)section header背景颜色
- (UIView *) tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section { UIView * ...
随机推荐
- Hadoop之mapreduce
doc Hadoop初探之Stream Hadoop Stream 用python + hadoop streaming 编写分布式程序(一) -- 原理介绍,样例程序与本地调试 用python + ...
- --HTML标签1
文字标签: <h>标签 标题,分为<h1>-<h6>(6级) <b> 加粗 <u> 下滑线 <s>或<strike> ...
- 4、python内置类型(0529)
支持运算:索引,切片,min(), max(), len()等 支持操作:对象的自有的方法 对字符串操作的内置方法获取:str. //敲tab键补全 获取某个内建命令的属性和方法列表:dir( ...
- Leetcode121-Best Time to Buy and Sell Stock I - Easy
I Say you have an array for which the ith element is the price of a given stock on day i. If you wer ...
- 给大一新生学习c程序的一些建议的一些建议
这是一篇给刚学习c程序的学弟们的一篇日志.如果想学好c程序,以及不想走太多弯路,希望能看一下这篇文章,如果说基础较好,或者说已经是大二,大三,这篇文章不会有什么帮助. 刚转到软件工程系,加了几个新生群 ...
- Cordova+Vue快速搭建Hybrid App
前言 最近项目迭代需要开发一个app,由于项目组其他系统前端技术栈都是Vue,所以自己在需求评估的时候就初步敲定了Cordova+Vue的前端架构,后来查阅了不少资料,也掉了不少坑,这里总结一下,也算 ...
- Git安装与使用
转载自:https://www.cnblogs.com/smuxiaolei/p/7484678.html git 提交 全部文件 git add . git add xx命令可以将xx文件添加到暂 ...
- 通过TortoiseSVN进行文件(夹)外链 External File
1.假设将server/a.lua文件外链到client文件夹中 2.在client文件夹空白处右键->TortoiseSVN->Properties->New->Extern ...
- boke练习: @PreAuthorize authentication.name.equals的数据绑定与验证
boke练习: @PreAuthorize authentication.name.equals的数据绑定与验证 先看2个简单的例子: 一 @PostMapping("/{username} ...
- BroadcastReceiver(广播)的静态注册和动态注册 --Android开发
BroadcastReceiver是安卓四大组件之一,本例通过代码的方式演示静态注册和动态注册. 1.静态注册 静态注册只需要AndroidManifest.xml中进行配置: AndroidMani ...