批量创建SO
生成一般销售订单和退货订单所要使用的BAPI不同,
一般销售订单: BAPI_SALESORDER_CREATEFROMDAT2
退货订单: BAPI_CUSTOMERRETURN_CREATE
二者的参数基本一样。
以下为例:
" tables for bapi
DATA: gt_order_header_in LIKE bapisdhd1.
DATA: gt_order_header_inx LIKE bapisdhd1x.
DATA: gt_return LIKE bapiret2 OCCURS 0 WITH HEADER LINE.
DATA: gt_message LIKE TABLE OF bapiret2 WITH HEADER LINE.
DATA: gt_order_items_in LIKE bapisditm OCCURS 0 WITH HEADER LINE.
DATA: gt_order_items_inx LIKE bapisditmx OCCURS 0 WITH HEADER LINE.
DATA: gv_salesdocument LIKE bapivbeln-vbeln.
DATA: gt_order_partners LIKE bapiparnr OCCURS 0 WITH HEADER LINE.
DATA: gt_schedules_in LIKE bapischdl OCCURS 0 WITH HEADER LINE.
DATA: gt_schedules_inx LIKE bapischdlx OCCURS 0 WITH HEADER LINE.
DATA: gt_order_conditions_in LIKE bapicond OCCURS 0 WITH HEADER LINE.
DATA: gt_order_conditions_inx LIKE bapicondx OCCURS 0 WITH HEADER LINE.
DATA: gt_order_text LIKE bapisdtext OCCURS 0 WITH HEADER LINE.
DATA: gv_number TYPE vbap-posnr.
" internal tables
TYPES: BEGIN OF ty_sales_order,
numbr TYPE i, " 序号
auart TYPE vbak-auart, " 订单类型
vkorg TYPE vbak-vkorg, " 销售组织
vtweg TYPE vbak-vtweg, " 分销渠道
spart TYPE vbak-spart, " 产品组
vkbur TYPE vbak-vkbur, " 销售办公室
vkgrp TYPE vbak-vkgrp, " 销售组
kunag TYPE vbak-kunnr, " 售达方
kunwe TYPE vbak-kunnr, " 送达方
kunre TYPE vbak-kunnr, " 收票方
kunrg TYPE vbak-kunnr, " 付款方
matnr TYPE vbap-matnr, " 物料编码
kwmeng TYPE vbap-kwmeng," 订单数量
zieme TYPE vbap-zieme, " 订单单位
werks TYPE vbap-werks, " 生产工厂
lgort TYPE vbap-lgort, " 仓库
kschl TYPE komv-kschl, " 条件类型
cond_value TYPE bapicond-cond_value, " 金额
bstkd TYPE vbkd-bstkd, "客户采购订单编号
charg TYPE vbap-charg, "批次
route TYPE vbap-route, "路线
END OF ty_sales_order.
TYPES:BEGIN OF ty_result,
numbr TYPE i, " 序号
vbeln TYPE vbak-vbeln,
message TYPE bapiret2-message,
bstkd TYPE vbkd-bstkd, "客户采购订单编号
END OF ty_result.
DATA: gs_result TYPE ty_result.
DATA: gt_result TYPE TABLE OF ty_result.
DATA: gs_sales_order TYPE ty_sales_order.
DATA: gt_sales_order TYPE TABLE OF ty_sales_order.
DATA: gv_error_exit_flag TYPE flag. " whether error exit
DATA: BEGIN OF gt_excel_result OCCURS 0,
text TYPE string,
END OF gt_excel_result.
DATA: gt_fcat TYPE lvc_t_fcat.
FIELD-SYMBOLS:
TYPE lvc_s_fcat.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-000.
PARAMETERS p_file TYPE ibipparms-path OBLIGATORY.
SELECTION-SCREEN END OF BLOCK b1.
PARAMETERS p_th AS CHECKBOX. "是否为退货订单
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file .
CALL FUNCTION 'WS_FILENAME_GET'
EXPORTING
def_filename = '*.xls'
def_path = 'C:\'
mask = ',*.xls.'
mode = 'O'
title = 'Choose Input file'(002)
IMPORTING
filename = p_file
EXCEPTIONS
inv_winsys = 1
no_batch = 2
selection_cancel = 3
selection_error = 4
OTHERS = 5.
START-OF-SELECTION.
" upload excel
PERFORM process_logic.
*&---------------------------------------------------------------------*
*& Form UPLOAD_EXCEL
*&---------------------------------------------------------------------*
* upload excel
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM process_logic .
DATA: l_row TYPE i,
l_text TYPE string.
" local parameters
DATA: lt_file TYPE STANDARD TABLE OF alsmex_tabline.
DATA: ls_file TYPE alsmex_tabline.
FIELD-SYMBOLS: TYPE ty_sales_order.
" upload excel with sales order information
CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
EXPORTING
filename = p_file
i_begin_col = 1
i_begin_row = 2
i_end_col = 37
i_end_row = 60000
TABLES
intern = lt_file
EXCEPTIONS
inconsistent_parameters = 1
upload_ole = 2
OTHERS = 3.
IF sy-subrc <> 0.
MESSAGE text-t01 TYPE 'E'.
ELSE.
" translate data
LOOP AT lt_file INTO ls_file.
l_row = ls_file-row + 1.
CASE ls_file-col.
WHEN '0001'. "序号
gs_sales_order-numbr = ls_file-value.
WHEN '0002'. " 订单类型
gs_sales_order-auart = ls_file-value.
WHEN '0003'. " 销售组织
gs_sales_order-vkorg = ls_file-value.
WHEN '0004'. " 分销渠道
gs_sales_order-vtweg = ls_file-value.
WHEN '0005'. " 产品组
gs_sales_order-spart = ls_file-value.
WHEN '0006'. " 销售办公室
gs_sales_order-vkbur = ls_file-value.
WHEN '0007'. " 销售组
gs_sales_order-vkgrp = ls_file-value.
WHEN '0008'. " 售达方
gs_sales_order-kunag = ls_file-value.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = gs_sales_order-kunag
IMPORTING
output = gs_sales_order-kunag.
WHEN '0009'. " 送达方
gs_sales_order-kunwe = ls_file-value.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = gs_sales_order-kunwe
IMPORTING
output = gs_sales_order-kunwe.
WHEN '0010'. " 收票方
gs_sales_order-kunre = ls_file-value.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = gs_sales_order-kunre
IMPORTING
output = gs_sales_order-kunre.
WHEN '0011'. " 付款方
gs_sales_order-kunrg = ls_file-value.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = gs_sales_order-kunrg
IMPORTING
output = gs_sales_order-kunrg.
WHEN '0012'. " 物料编码
gs_sales_order-matnr = ls_file-value.
" conversion
IF gs_sales_order-matnr IS NOT INITIAL.
CALL FUNCTION 'CONVERSION_EXIT_MATN1_INPUT'
EXPORTING
input = gs_sales_order-matnr
IMPORTING
output = gs_sales_order-matnr.
ENDIF.
WHEN '0013'. " 订单数量
gs_sales_order-kwmeng = ls_file-value.
WHEN '0014'. " 订单单位
gs_sales_order-zieme = ls_file-value.
CALL FUNCTION 'CONVERSION_EXIT_CUNIT_INPUT'
EXPORTING
input = gs_sales_order-zieme
* LANGUAGE = SY-LANGU
IMPORTING
output = gs_sales_order-zieme.
WHEN '0015'. " 工厂
gs_sales_order-werks = ls_file-value.
WHEN '0016'. " 仓库
gs_sales_order-lgort = ls_file-value.
WHEN '0017'." 条件类型
gs_sales_order-kschl = ls_file-value.
WHEN '0018'." 价格
gs_sales_order-cond_value = ls_file-value.
WHEN '0019'."采购订单编号
gs_sales_order-bstkd = ls_file-value.
WHEN '0020'."批次
gs_sales_order-charg = ls_file-value.
WHEN '0021'."路线
gs_sales_order-route = ls_file-value.
WHEN OTHERS.
ENDCASE.
AT END OF row.
IF gs_sales_order-numbr = ''.
l_text = l_row.
CONCATENATE '第' l_text '行“序号”不能为空。' INTO l_text.
gt_excel_result-text = l_text.
APPEND gt_excel_result.
ENDIF.
IF gs_sales_order-auart = ''.
l_text = l_row.
CONCATENATE '第' l_text '行“订单类型”不能为空。' INTO l_text.
gt_excel_result-text = l_text.
APPEND gt_excel_result.
ENDIF.
IF gs_sales_order-vkorg = ''.
l_text = l_row.
CONCATENATE '第' l_text '行“销售组织”不能为空。' INTO l_text.
gt_excel_result-text = l_text.
APPEND gt_excel_result.
ENDIF.
IF gs_sales_order-vtweg = ''.
l_text = l_row.
CONCATENATE '第' l_text '行“分销渠道”不能为空。' INTO l_text.
gt_excel_result-text = l_text.
APPEND gt_excel_result.
ENDIF.
IF gs_sales_order-spart = ''.
l_text = l_row.
CONCATENATE '第' l_text '行“产品组”不能为空。' INTO l_text.
gt_excel_result-text = l_text.
APPEND gt_excel_result.
ENDIF.
IF gs_sales_order-vkbur = ''.
l_text = l_row.
CONCATENATE '第' l_text '行“销售办公室”不能为空。' INTO l_text.
gt_excel_result-text = l_text.
APPEND gt_excel_result.
ENDIF.
IF gs_sales_order-matnr = ''.
l_text = l_row.
CONCATENATE '第' l_text '行“物料编码”不能为空。' INTO l_text.
gt_excel_result-text = l_text.
APPEND gt_excel_result.
ENDIF.
IF gs_sales_order-kwmeng = ''.
l_text = l_row.
CONCATENATE '第' l_text '行“订单数量”不能为空。' INTO l_text.
gt_excel_result-text = l_text.
APPEND gt_excel_result.
ENDIF.
IF gs_sales_order-zieme = ''.
l_text = l_row.
CONCATENATE '第' l_text '行“订单单位”不能为空。' INTO l_text.
gt_excel_result-text = l_text.
APPEND gt_excel_result.
ENDIF.
IF gs_sales_order-werks = ''.
l_text = l_row.
CONCATENATE '第' l_text '行“工厂”不能为空。' INTO l_text.
gt_excel_result-text = l_text.
APPEND gt_excel_result.
ENDIF.
IF gs_sales_order-lgort = ''.
l_text = l_row.
CONCATENATE '第' l_text '行“库存地”不能为空。' INTO l_text.
gt_excel_result-text = l_text.
APPEND gt_excel_result.
ENDIF.
APPEND gs_sales_order TO gt_sales_order.
CLEAR gs_sales_order.
ENDAT.
ENDLOOP.
IF gt_excel_result[] IS NOT INITIAL.
LOOP AT gt_excel_result.
WRITE:/ gt_excel_result-text.
ENDLOOP.
ELSE.
SORT gt_sales_order BY numbr
auart " 订单类型
vkorg " 销售组织
vtweg " 分销渠道
spart " 产品组
vkbur " 销售办公室
vkgrp " 销售组
kunag " 售达方
kunwe " 送达方
kunre " 收票方
kunrg. " 付款方
" build records and calling bapi
LOOP AT gt_sales_order ASSIGNING .
gv_number = gv_number + 10.
" build records
PERFORM build_records_4_bapi USING .
" one order with serval items
AT END OF numbr.
" build header
PERFORM build_header_4_bapi USING .
" call bapi to upload sales order
PERFORM upload_sales_order_with_bapi USING .
CLEAR gv_number.
ENDAT.
ENDLOOP.
" if no error exist , raise report
IF gv_error_exit_flag IS INITIAL AND gt_result IS NOT INITIAL.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.
PERFORM frm_show_detail.
ELSEIF gv_error_exit_flag IS NOT INITIAL.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK' .
PERFORM frm_pop_showmessage USING 'E'.
ENDIF.
ENDIF.
ENDIF.
ENDFORM. " UPLOAD_EXCEL
*&---------------------------------------------------------------------*
*& Form BUILD_RECORDS_4_BAPI
*&---------------------------------------------------------------------*
* build records for calling bapi
*----------------------------------------------------------------------*
* -->P_GS_SALES_ORDER text
*----------------------------------------------------------------------*
FORM build_records_4_bapi USING ps_sales_order TYPE ty_sales_order.
" item data
CLEAR gt_order_items_in.
gt_order_items_in-itm_number = gv_number.
gt_order_items_in-material = ps_sales_order-matnr.
gt_order_items_in-plant = ps_sales_order-werks.
gt_order_items_in-store_loc = ps_sales_order-lgort.
gt_order_items_in-target_qty = ps_sales_order-kwmeng.
gt_order_items_in-target_qu = ps_sales_order-zieme.
gt_order_items_in-sales_unit = ps_sales_order-zieme.
gt_order_items_in-batch = ps_sales_order-charg.
gt_order_items_in-route = ps_sales_order-route.
APPEND gt_order_items_in.
CLEAR gt_order_items_inx.
gt_order_items_inx-updateflag = '1'.
gt_order_items_inx-material = abap_true.
gt_order_items_inx-plant = abap_true.
gt_order_items_inx-store_loc = abap_true.
gt_order_items_inx-target_qty = abap_true.
gt_order_items_inx-target_qu = abap_true.
gt_order_items_inx-sales_unit = abap_true.
gt_order_items_inx-batch = abap_true.
gt_order_items_inx-route = abap_true.
APPEND gt_order_items_inx.
" fill schedules
CLEAR gt_schedules_in.
gt_schedules_in-itm_number = gv_number.
gt_schedules_in-req_qty = ps_sales_order-kwmeng.
APPEND gt_schedules_in.
CLEAR gt_schedules_inx.
gt_schedules_inx-updateflag = 'X'.
gt_schedules_inx-itm_number = abap_true.
gt_schedules_inx-req_qty = abap_true.
APPEND gt_schedules_inx.
CLEAR gt_order_conditions_in.
CLEAR gt_order_conditions_inx.
IF ps_sales_order-kschl <> ''.
gt_order_conditions_in-itm_number = gv_number.
gt_order_conditions_in-cond_type = ps_sales_order-kschl. "定价条件
gt_order_conditions_in-cond_value = ps_sales_order-cond_value. "价格
gt_order_conditions_in-currency = 'CNY'. "币别
APPEND gt_order_conditions_in.
gt_order_conditions_inx-updateflag = 'X'.
gt_order_conditions_inx-cond_type = abap_true. "定价条件
gt_order_conditions_inx-cond_value = abap_true. "价格
gt_order_conditions_inx-currency = abap_true. "币别
APPEND gt_order_conditions_inx.
ENDIF.
ENDFORM. " BUILD_RECORDS_4_BAPI
*&---------------------------------------------------------------------*
*& Form UPLOAD_SALES_ORDER_WITH_BAPI
*&---------------------------------------------------------------------*
* calling bapi
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM upload_sales_order_with_bapi USING ps_sales_order TYPE ty_sales_order .
" clear
CLEAR: gt_return,
gt_return[],
gv_salesdocument.
IF p_th IS INITIAL.
CALL FUNCTION 'BAPI_SALESORDER_CREATEFROMDAT2'
EXPORTING
order_header_in = gt_order_header_in
order_header_inx = gt_order_header_inx
IMPORTING
salesdocument = gv_salesdocument
TABLES
return = gt_return
order_items_in = gt_order_items_in
order_items_inx = gt_order_items_inx
order_partners = gt_order_partners
order_schedules_in = gt_schedules_in
order_schedules_inx = gt_schedules_inx
order_conditions_in = gt_order_conditions_in
order_conditions_inx = gt_order_conditions_inx.
ELSE.
CALL FUNCTION 'BAPI_CUSTOMERRETURN_CREATE'
EXPORTING
RETURN_HEADER_IN = gt_order_header_in
RETURN_HEADER_INX = gt_order_header_inx
IMPORTING
SALESDOCUMENT = gv_salesdocument
TABLES
return = gt_return
RETURN_ITEMS_IN = gt_order_items_in
RETURN_ITEMS_INX = gt_order_items_inx
RETURN_PARTNERS = gt_order_partners
RETURN_SCHEDULES_IN = gt_schedules_in
RETURN_SCHEDULES_INX = gt_schedules_inx
RETURN_CONDITIONS_IN = gt_order_conditions_in.
ENDIF.
READ TABLE gt_return WITH KEY type = 'E'.
IF sy-subrc = 0.
LOOP AT gt_return WHERE type = 'E'.
gt_message = gt_return.
gt_message-message_v4 = ps_sales_order-numbr.
APPEND gt_message.
ENDLOOP.
gv_error_exit_flag = abap_true.
ELSE.
IF gv_salesdocument IS NOT INITIAL.
CLEAR gs_result.
gs_result-numbr = ps_sales_order-numbr.
gs_result-vbeln = gv_salesdocument.
gs_result-bstkd = ps_sales_order-bstkd.
CONCATENATE '销售订单' gs_result-vbeln '创建成功' INTO gs_result-message.
APPEND gs_result TO gt_result.
ENDIF.
ENDIF.
" refresh
PERFORM refresh.
ENDFORM. " UPLOAD_SALES_ORDER_WITH_BAPI
*&---------------------------------------------------------------------*
*& Form BUILD_HEADER_4_BAPI
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_GS_SALES_ORDER text
*----------------------------------------------------------------------*
FORM build_header_4_bapi USING ps_sales_order TYPE ty_sales_order.
" build header data
CLEAR gt_order_header_in.
gt_order_header_in-doc_type = ps_sales_order-auart.
gt_order_header_in-sales_org = ps_sales_order-vkorg.
gt_order_header_in-distr_chan = ps_sales_order-vtweg.
gt_order_header_in-division = ps_sales_order-spart.
gt_order_header_in-sales_off = ps_sales_order-vkbur.
gt_order_header_in-sales_grp = ps_sales_order-vkgrp.
IF ps_sales_order-bstkd IS NOT INITIAL.
gt_order_header_in-purch_no_c = ps_sales_order-bstkd.
gt_order_header_inx-purch_no_c = abap_true.
gt_order_header_in-purch_no_s = ps_sales_order-bstkd.
gt_order_header_inx-purch_no_s = abap_true.
ENDIF.
CLEAR gt_order_header_inx.
gt_order_header_inx-doc_type = abap_true.
gt_order_header_inx-sales_org = abap_true.
gt_order_header_inx-distr_chan = abap_true.
gt_order_header_inx-division = abap_true.
gt_order_header_inx-sales_off = abap_true.
gt_order_header_inx-sales_grp = abap_true.
gt_order_header_inx-updateflag = '1'.
IF ps_sales_order-bstkd IS NOT INITIAL.
gt_order_header_inx-purch_no_c = abap_true.
gt_order_header_inx-purch_no_s = abap_true.
ENDIF.
" partner function
CLEAR gt_order_partners.
gt_order_partners-partn_role = 'AG'.
gt_order_partners-partn_numb = ps_sales_order-kunag.
APPEND gt_order_partners.
CLEAR gt_order_partners.
gt_order_partners-partn_role = 'WE'.
gt_order_partners-partn_numb = ps_sales_order-kunwe.
APPEND gt_order_partners.
CLEAR gt_order_partners.
gt_order_partners-partn_role = 'RE'.
gt_order_partners-partn_numb = ps_sales_order-kunre.
APPEND gt_order_partners.
CLEAR gt_order_partners.
gt_order_partners-partn_role = 'RG'.
gt_order_partners-partn_numb = ps_sales_order-kunrg.
APPEND gt_order_partners.
ENDFORM. " BUILD_HEADER_4_BAPI
*&---------------------------------------------------------------------*
*& Form REFRESH
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM refresh .
CLEAR:
gt_order_header_in,
gt_order_header_inx,
gv_salesdocument,
gt_return,
gt_return[],
gt_order_items_in,
gt_order_items_in[],
gt_order_items_inx,
gt_order_items_inx[],
gt_order_partners,
gt_order_partners[],
gt_schedules_in,
gt_schedules_in[],
gt_schedules_inx,
gt_schedules_inx[],
gt_order_conditions_in,
gt_order_conditions_in[],
gt_order_conditions_inx,
gt_order_conditions_inx[].
ENDFORM. " REFRESH
*&---------------------------------------------------------------------*
*& Form FRM_SHOW_DETAIL
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM frm_show_detail .
APPEND INITIAL LINE TO gt_fcat ASSIGNING .
-fieldname = 'NUMBR'.
-coltext = '序号'.
APPEND INITIAL LINE TO gt_fcat ASSIGNING .
-fieldname = 'VBELN'.
-coltext = '订单号'.
APPEND INITIAL LINE TO gt_fcat ASSIGNING .
-fieldname = 'MESSAGE'.
-coltext = '消息'.
APPEND INITIAL LINE TO gt_fcat ASSIGNING .
-fieldname = 'BSTKD'.
-coltext = '采购订单号'.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
EXPORTING
it_fieldcat_lvc = gt_fcat
TABLES
t_outtab = gt_result
.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
ENDFORM. " FRM_SHOW_DETAIL
*&---------------------------------------------------------------------*
*& Form FRM_POP_SHOWMESSAGE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_0899 text
*----------------------------------------------------------------------*
FORM frm_pop_showmessage USING p_type TYPE bapi_mtype.
CALL FUNCTION 'MESSAGES_INITIALIZE'. "20140213 Chung 消息处理
LOOP AT gt_message
WHERE type = p_type.
CONDENSE gt_message-message_v4.
CALL FUNCTION 'MESSAGE_STORE'
EXPORTING
arbgb = gt_message-id
exception_if_not_active = ' '
msgty = gt_message-type
msgv1 = gt_message-message_v1
msgv2 = gt_message-message_v2
msgv3 = gt_message-message_v3
* msgv4 = gt_message-message_v4
txtnr = gt_message-number
zeile = gt_message-message_v4
EXCEPTIONS
message_type_not_valid = 1
not_active = 2
OTHERS = 3.
ENDLOOP.
CALL FUNCTION 'MESSAGES_SHOW'
EXCEPTIONS
inconsistent_range = 1
no_messages = 2
OTHERS = 3.
ENDFORM. " FRM_POP_SHOWMESSAGE
批量创建SO的更多相关文章
- 批量创建10个用户stu01-stu10
1.批量创建10个用户stu01-stu10,并且设置随机8位密码,要求不能用shell循环(例如:for,while等),只能用命令及管道实现. ##方法1: [root@server tmp]# ...
- 批量创建AD测试账号
在现场中,有时候客户会要求做一下AD压力测试,需要批量创建很多AD用户.奉献此代码供各位参考. 1: <# 2: 3: .DESCRIPTION 4: 批量创建AD测试账号 5: 6 ...
- mkdir:批量创建文件夹
问题:mkdir dir[0-9]创建文件夹时,并没有如预期创建dir0~dir9这几个文件夹,而是创建了dir[0-9]这一个文件夹. 网上看了些相关资料,发现以前对[0-9]的理解不够透彻: &q ...
- 使用Java中File类批量创建文件和批量修改文件名
批量创建文件 int cont = 1; String s = "E:\\学习资料\\Java笔记-"; while(cont<100){ File f = new File ...
- [工具] 分布式系统下批量创建用户及分发公钥打通ssh通道的脚本
在分布式系统下偶尔会有这样的需求,要增加一个服务时,需要在集群的所有节点上创建同一个用户,然后打通ssh通道,再分发软件包.配置.执行命令.启动服务... 这个问题的根源是如何集中配置和管理系统,专业 ...
- 【转】dsadd user批量创建AD用户命令详解
常见的批量创建用户的方法有四种: 一. 帐户模板的方式 二. CSVDE和LDIFDE 三. 脚本的方式 四. DSADD 但是很少有详细的资料使用DSADD的方式来批量创建帐户,那么我就把我近期使用 ...
- AD批量创建用户
实验环境:Windows Server 2008R 2 由于测试需要,需要创建数百个用户,手动创建当然不可取,此时需要批量创建,操作记录如下 1 首先将要批量创建的人员信息导入到一个csv文件中,表中 ...
- salt进程查看插件&salt批量创建用户
接受key 剔除主机 启动 salt-minion-d 软件包的安装 salt '*' state.sls init.env-init test=true salt批量创建用户: ...
- Python 批量创建同文件名的特定后缀文件
看了很多批量创建文件和文件批量格式转换的code,感觉杀鸡焉用牛刀,自己写了几行轻量级的拿来给大家参考: 在out_dir目录下批量创建与in_dir目录下同文件名但后缀不同的文件. in_dir = ...
- SERVER 2012 R2 core域环境下批量创建用户
Write by xiaoyang 转载请注明出处 步骤一:创建域 基本配置 1. 输入命令进入配置 2. 输入8进入网络配置 3. 选择要配置的网 ...
随机推荐
- android两种基本联网方式与一种第三方开源项目的使用
安卓请求网络的三种方式 在请求网络的时候一般常用的提交方式是post或者get请求,post请求安全,传输大小无限制,但是代码量多些,get请求是浏览器有大小限制,用户提交的信息在浏览器的地址栏显示出 ...
- iOS开发_MVC设计模式
MVC,是一种主流的设计模式,本博文总结一下自己对MVC的看法和理解,浅知拙见,难登大雅之堂,如有欠缺遗漏,还望各位指正. MVC是Model-View-Controller 的缩写,Model 是指 ...
- 【译】Permissions Best Practices Android M权限最佳做法
Permissions Best Practices PreviousNext In this document Consider Using an Intent Don't Overwhelm th ...
- hdu 1231, dp ,maximum consecutive sum of integers, find the boundaries, possibly all negative, C++ 分类: hdoj 2015-07-12 03:24 87人阅读 评论(0) 收藏
the algorithm of three version below is essentially the same, namely, Kadane's algorithm, which is o ...
- SQLSERVER跨数据库操作 ---- sp_addlinkedserver
由于项目需要跨数据库进行相应的sql操作(这里遇到的是sqlserver的A库,到sqlserver的B库) sp_addlinkedserver [ @server = ] ' server ' [ ...
- 事件问题 Event
Event事件可以理解为在异步过程中实现同步的操作.但是要注意不要过分的使用Event,否则异步就失去了意义. 直接通过代码来说明: #include
- 【学习笔记】python 简单创建新建一个网络客户端,并返回相关的信息
#导入socket包 import socket #使用socket.socket创建socket连接 #AF_INET表示通信类型,与IPv4对应 #SOCK_STREAM对应TCP通信 print ...
- Object方法equals、hashCode
java知识背景: 1)hashCode()方法返回的是Jvm的32位地址 2)==比较的是对象在jvm中的地址 3)Object的equals()比较的就是jvm物理地址 4)比较2个对象使用equ ...
- C++初始化列表
C++初始化列表 定义一个类对象时,常常使用初始化列表实例化一个对象,在进入构造函数函数体之前对成员变量完成初始化操作.普通成员变量既可以在初始化中初始化,也可以在函数体重赋值:const成员变量只能 ...
- HTML 5 <script> 标签
HTML 4.01 与 HTML 5 之间的差异 async 属性是 HTML 5 中的新属性. 在 HTML 5 中,不再支持 HTML 4.01 中的一些属性. 提示和注释 注释:脚本按照如下方式 ...