2020-08-16 22:25发布
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
大家好
有什么方法可以使用CSV文件等定义固定的bin映射? 我知道交易/scwm/binmat,但是在这里我们不能通过csv等上传所有固定的垃圾箱,也不能使用第一次发布将产品固定到垃圾箱的配置。 但是我正在寻找csv文件上传,就像在EWM中存储仓和库存上传一样。
谢谢
Sasidhar Gupta
你好
我在标准/scwm/binmat中添加了一个"上传"按钮以读取csv文件,之后我尝试解析数据并将其附加到alv网格表中。
但是它实际上并不能正常工作,我仍然无法引发check_data事件来验证插入的行。 嗨,这是我的代码...
"&FILE&UPLOAD"时。
调用功能'WS_FILENAME_GET'
导出
MASK ='* .csv'"',*。*,*。'
MODE ='O'
导入
FILENAME = P_FILE
例外情况
INV_WINSYS = 1
NO_BATCH = 2
SELECTION_CANCEL = 3
SELECTION_ERROR = 4
其他= 5。
调用功能'GUI_UPLOAD'
FILETYPE ='ASC'
HAS_FIELD_SEPARATOR ='X'
READ_BY_LINE ='X'
表格
DATA_TAB = lt_data
FILE_OPEN_ERROR = 1
FILE_READ_ERROR = 2
NO_BATCH = 3
GUI_REFUSE_FILETRANSFER = 4
INVALID_TYPE = 5
NO_AUTHORITY = 6
UNKNOWN_ERROR = 7
BAD_DATA_FORMAT = 8
HEADER_NOT_ALLOWED = 9
SEPARATOR_NOT_ALLOWED = 10
HEADER_TOO_LONG = 11
UNKNOWN_DP_ERROR = 12
ACCESS_DENIED = 13
DP_OUT_OF_MEMORY = 14
DISK_FULL = 15
DP_TIMEOUT = 16
其他= 17
。
如果SY-SUBRC <> 0。
*在此处实施适当的错误处理
ENDIF。
l_mode = cl_gui_alv_grid => MC_STYLE_DISABLED。
将lt_data输入到LV_RAW_DATA。
分割LV_RAW_DATA
AT';'
进入
ls_bin_mat-lgnum
ls_bin_mat授权的
ls_bin_mat-lgpla
ls_bin_mat-lgtyp
ls_bin_mat-matnr
ls_bin_mat-improv_fix
ls_bin_mat-datout
ls_bin_mat-maxqty
ls_bin_mat-maxqty_uom_dsp
ls_bin_mat-minqty
ls_bin_mat-minqty_uom_dsp
ls_bin_mat-rmmqty_fix
ls_bin_mat-created_at
ls_bin_mat-created_by。
将ls_bin_mat附加到lt_bin_mat。
ENDLOOP。
如果me-> mo_data_changed是INITIAL。
创建对象me-> mo_data_changed
I_CALLING_ALV = g_grid" Rufender ALV
创建数据G_VERIFIER-> MO_DATA_CHANGED-> MP_MOD_ROWS之类的LT_OUTTAB。
ASSIGN G_VERIFIER-> MO_DATA_CHANGED-> MP_MOD_ROWS-> *至。
将lt_bin_mat循环到ls_bin_mat。
清除ls_outtab。
清除ls_mod_rows。
清除ls_mod_cells。
lv_index = sy-tabix。
刷新lt_celltab。
"'LGNUM'
ls_outtab-lgnum = ls_bin_mat-LGNUM。
ls_mod_cells-LGNUM = ls_bin_mat-LGNUM。
ls_mod_rows-ROW_ID = lv_index。
ls_mod_rows-TABIX = lv_index。
ls_mod_rows-FIELDNAME ='LGNUM'。
ls_mod_rows-VALUE = ls_mod_cells-LGNUM。
APPEND ls_mod_rows到LT_MOD_ROWS。
"'LGTYP'
ls_outtab-LGTYP = ls_bin_mat-LGTYP。
ls_mod_rows-FIELDNAME ='LGTYP'。
ls_mod_rows-VALUE = ls_outtab-LGTYP。
"'OUTCON'
ls_outtab-OUTCON = ls_bin_mat-IMPROV_FIX。
ls_mod_rows-FIELDNAME ='OUTCON'。
ls_mod_rows-VALUE = ls_outtab-OUTCON。
"'MAXQTY'
ls_outtab-MAXQTY = ls_bin_mat-MAXQTY。
ls_mod_rows-FIELDNAME ='MAXQTY'。
ls_mod_rows-VALUE = ls_outtab-MAXQTY。
"'MAXQTY_UOM_DSP'
ls_outtab-MAXQTY_UOM_DSP = ls_bin_mat-MAXQTY_UOM_DSP。
ls_mod_rows-FIELDNAME ='MAXQTY_UOM_DSP'。
ls_mod_rows-VALUE = ls_outtab-MAXQTY_UOM_DSP。
"'MINQTY'
ls_outtab-MINQTY = ls_bin_mat-MINQTY。
ls_mod_rows-FIELDNAME ='MINQTY'。
ls_mod_rows-VALUE = ls_outtab-MINQTY。
"'MINQTY_UOM_DSP'
ls_outtab-MINQTY_UOM_DSP = ls_bin_mat-MINQTY_UOM_DSP。
ls_mod_rows-FIELDNAME ='MINQTY_UOM_DSP'。
ls_mod_rows-VALUE = ls_outtab-MINQTY_UOM_DSP。
"'RMMQTY_FIX'
ls_outtab-RMMQTY_FIX = ls_bin_mat-RMMQTY_FIX。
ls_mod_rows-FIELDNAME ='RMMQTY_FIX'。
ls_mod_rows-VALUE = ls_outtab-RMMQTY_FIX。
ls_outtab-ENTITLED = ls_bin_mat-ENTITLED。
ls_mod_cells-ENTITLED = ls_bin_mat-ENTITLED。
ls_mod_rows-FIELDNAME ='ENTITLED'。
ls_mod_rows-VALUE = ls_outtab-ENTITLED。
ls_outtab-LGPLA = ls_bin_mat-LGPLA。
ls_mod_cells-LGPLA = ls_bin_mat-LGPLA。
ls_outtab-MATNR = ls_bin_mat-MATNR。
ls_celltab-fieldname ='CREATED_AT'。
ls_celltab-style = l_mode。
将ls_celltab插入表lt_celltab。
ls_celltab-fieldname ='CREATED_BY'。
ls_celltab-fieldname ='COUNT'。
ls_celltab-fieldname ='DATOUT'。
将lt_celltab的行插入到表ls_outtab-celltab中。
APPEND ls_outtab到gt_outtab。
附加ls_mod_cells给我-> MODIFIED_ROWS。
执行build_fieldcat更改pt_fieldcat。
我-> MO_DATA_CHANGED-> MT_FIELDCATALOG = pt_fieldcat。
将LT_MOD_ROWS的行插入表me-> MO_DATA_CHANGED-> MT_MOD_CELLS。
将LT_MOD_ROWS行插入表ME-> MO_DATA_CHANGED-> MT_GOOD_CELLS。
将GT_OUTTAB的行插入表。
调用方法g_grid-> refresh_table_display。
GS_LAYOUT-STYLEFNAME ='CELLTAB'。
*强制打开GridModified标志
调用方法g_grid-> IF_CACHED_PROP〜SET_PROP
propname ='GridModified'
propvalue ='1'
其他= 0。
DATA l_valid TYPE char01。
调用方法g_grid-> check_changed_data
e_valid = l_valid。
调用方法G_VERIFIER-> HANDLE_DATA_CHANGED
ER_DATA_CHANGED =我-> MO_DATA_CHANGED
嗨,
您需要开发自定义LSMW,并且您需要使用/scwm/fb_update FM更新表/scwm/binmat。 我已经通过致电上述FM解决了我的问题。
您可以使用LSMW。
最好的问候
CarlosDíaz
嗨申曼克,
我知道如何通过excel文件上传mas数据以进行"其他交易"。
我的问题是/SCWM/BINMAT。 请为我提到的交易提出建议,因为交易数据的进一步内容正在通过ALV网格在数据库中进行更新,也许您会知道我们无法记录ALV Grid的步骤,因为它是"享受控制"。
从9.0开始,您在EWM中有多个迁移工具事务,其中一个用于仓库产品迁移。 在此处,您可以选择"迁移固定仓位分配"。 仓库产品迁移-从LE-WM迁移-SAP库
现在,交易的一般思想是从ERP迁移到EWM,这意味着首先创建文件 与此事务一起使用ERP数据,然后上载-但是,当然没有人会强迫您执行第一步。 您需要测试文件格式,我现在并没有真正深入研究文档。
Brgds
Juergen
此存储类型在哪里检查? 这似乎是简单的选择。
嗨,Jasmin,
通过excel文件将大量数据上传到SAP ECC/EWM系统是一种简便的方法。
以下是上传过程要遵循的步骤:
(MS Word->插入->快速零件->字段)。
4.使用输入记录创建Excel文件。
5.通过逐步向导工具将Excel工作表上传到MS Word文件。
6.将新生成的文件复制到NOTEPAD文件并保存。
7.借助Created Recording将文件导入到SAP System中并执行,所有Excel数据都可以上传到SAP System中。
Shimank Jain
最多设置5个标签!
你好
我在标准/scwm/binmat中添加了一个"上传"按钮以读取csv文件,之后我尝试解析数据并将其附加到alv网格表中。
但是它实际上并不能正常工作,我仍然无法引发check_data事件来验证插入的行。 嗨,这是我的代码...
"&FILE&UPLOAD"时。
调用功能'WS_FILENAME_GET'
导出
MASK ='* .csv'"',*。*,*。'
MODE ='O'
导入
FILENAME = P_FILE
例外情况
INV_WINSYS = 1
NO_BATCH = 2
SELECTION_CANCEL = 3
SELECTION_ERROR = 4
其他= 5。
调用功能'GUI_UPLOAD'
导出
FILENAME = P_FILE
FILETYPE ='ASC'
HAS_FIELD_SEPARATOR ='X'
READ_BY_LINE ='X'
表格
DATA_TAB = lt_data
例外情况
FILE_OPEN_ERROR = 1
FILE_READ_ERROR = 2
NO_BATCH = 3
GUI_REFUSE_FILETRANSFER = 4
INVALID_TYPE = 5
NO_AUTHORITY = 6
UNKNOWN_ERROR = 7
BAD_DATA_FORMAT = 8
HEADER_NOT_ALLOWED = 9
SEPARATOR_NOT_ALLOWED = 10
HEADER_TOO_LONG = 11
UNKNOWN_DP_ERROR = 12
ACCESS_DENIED = 13
DP_OUT_OF_MEMORY = 14
DISK_FULL = 15
DP_TIMEOUT = 16
其他= 17
。
如果SY-SUBRC <> 0。
*在此处实施适当的错误处理
ENDIF。
l_mode = cl_gui_alv_grid => MC_STYLE_DISABLED。
将lt_data输入到LV_RAW_DATA。
分割LV_RAW_DATA
AT';'
进入
ls_bin_mat-lgnum
ls_bin_mat授权的
ls_bin_mat-lgpla
ls_bin_mat-lgtyp
ls_bin_mat-matnr
ls_bin_mat-improv_fix
ls_bin_mat-datout
ls_bin_mat-maxqty
ls_bin_mat-maxqty_uom_dsp
ls_bin_mat-minqty
ls_bin_mat-minqty_uom_dsp
ls_bin_mat-rmmqty_fix
ls_bin_mat-created_at
ls_bin_mat-created_by。
将ls_bin_mat附加到lt_bin_mat。
ENDLOOP。
如果me-> mo_data_changed是INITIAL。
创建对象me-> mo_data_changed
导出
I_CALLING_ALV = g_grid" Rufender ALV
。
ENDIF。
创建数据G_VERIFIER-> MO_DATA_CHANGED-> MP_MOD_ROWS之类的LT_OUTTAB。
ASSIGN G_VERIFIER-> MO_DATA_CHANGED-> MP_MOD_ROWS-> *至。
将lt_bin_mat循环到ls_bin_mat。
清除ls_outtab。
清除ls_mod_rows。
清除ls_mod_cells。
lv_index = sy-tabix。
刷新lt_celltab。
"'LGNUM'
ls_outtab-lgnum = ls_bin_mat-LGNUM。
ls_mod_cells-LGNUM = ls_bin_mat-LGNUM。
ls_mod_rows-ROW_ID = lv_index。
ls_mod_rows-TABIX = lv_index。
ls_mod_rows-FIELDNAME ='LGNUM'。
ls_mod_rows-VALUE = ls_mod_cells-LGNUM。
APPEND ls_mod_rows到LT_MOD_ROWS。
"'LGTYP'
ls_outtab-LGTYP = ls_bin_mat-LGTYP。
ls_mod_rows-ROW_ID = lv_index。
ls_mod_rows-TABIX = lv_index。
ls_mod_rows-FIELDNAME ='LGTYP'。
ls_mod_rows-VALUE = ls_outtab-LGTYP。
APPEND ls_mod_rows到LT_MOD_ROWS。
"'OUTCON'
ls_outtab-OUTCON = ls_bin_mat-IMPROV_FIX。
ls_mod_rows-ROW_ID = lv_index。
ls_mod_rows-TABIX = lv_index。
ls_mod_rows-FIELDNAME ='OUTCON'。
ls_mod_rows-VALUE = ls_outtab-OUTCON。
APPEND ls_mod_rows到LT_MOD_ROWS。
"'MAXQTY'
ls_outtab-MAXQTY = ls_bin_mat-MAXQTY。
ls_mod_rows-ROW_ID = lv_index。
ls_mod_rows-TABIX = lv_index。
ls_mod_rows-FIELDNAME ='MAXQTY'。
ls_mod_rows-VALUE = ls_outtab-MAXQTY。
APPEND ls_mod_rows到LT_MOD_ROWS。
"'MAXQTY_UOM_DSP'
ls_outtab-MAXQTY_UOM_DSP = ls_bin_mat-MAXQTY_UOM_DSP。
ls_mod_rows-ROW_ID = lv_index。
ls_mod_rows-TABIX = lv_index。
ls_mod_rows-FIELDNAME ='MAXQTY_UOM_DSP'。
ls_mod_rows-VALUE = ls_outtab-MAXQTY_UOM_DSP。
APPEND ls_mod_rows到LT_MOD_ROWS。
"'MINQTY'
ls_outtab-MINQTY = ls_bin_mat-MINQTY。
ls_mod_rows-ROW_ID = lv_index。
ls_mod_rows-TABIX = lv_index。
ls_mod_rows-FIELDNAME ='MINQTY'。
ls_mod_rows-VALUE = ls_outtab-MINQTY。
APPEND ls_mod_rows到LT_MOD_ROWS。
"'MINQTY_UOM_DSP'
ls_outtab-MINQTY_UOM_DSP = ls_bin_mat-MINQTY_UOM_DSP。
ls_mod_rows-ROW_ID = lv_index。
ls_mod_rows-TABIX = lv_index。
ls_mod_rows-FIELDNAME ='MINQTY_UOM_DSP'。
ls_mod_rows-VALUE = ls_outtab-MINQTY_UOM_DSP。
APPEND ls_mod_rows到LT_MOD_ROWS。
"'RMMQTY_FIX'
ls_outtab-RMMQTY_FIX = ls_bin_mat-RMMQTY_FIX。
ls_mod_rows-ROW_ID = lv_index。
ls_mod_rows-TABIX = lv_index。
ls_mod_rows-FIELDNAME ='RMMQTY_FIX'。
ls_mod_rows-VALUE = ls_outtab-RMMQTY_FIX。
APPEND ls_mod_rows到LT_MOD_ROWS。
ls_outtab-ENTITLED = ls_bin_mat-ENTITLED。
ls_mod_cells-ENTITLED = ls_bin_mat-ENTITLED。
ls_mod_rows-ROW_ID = lv_index。
ls_mod_rows-TABIX = lv_index。
ls_mod_rows-FIELDNAME ='ENTITLED'。
ls_mod_rows-VALUE = ls_outtab-ENTITLED。
APPEND ls_mod_rows到LT_MOD_ROWS。
ls_outtab-LGPLA = ls_bin_mat-LGPLA。
ls_mod_cells-LGPLA = ls_bin_mat-LGPLA。
ls_outtab-MATNR = ls_bin_mat-MATNR。
ls_celltab-fieldname ='CREATED_AT'。
ls_celltab-style = l_mode。
将ls_celltab插入表lt_celltab。
ls_celltab-fieldname ='CREATED_BY'。
ls_celltab-style = l_mode。
将ls_celltab插入表lt_celltab。
ls_celltab-fieldname ='COUNT'。
ls_celltab-style = l_mode。
将ls_celltab插入表lt_celltab。
ls_celltab-fieldname ='DATOUT'。
ls_celltab-style = l_mode。
将ls_celltab插入表lt_celltab。
将lt_celltab的行插入到表ls_outtab-celltab中。
APPEND ls_outtab到gt_outtab。
附加ls_mod_cells给我-> MODIFIED_ROWS。
ENDLOOP。
执行build_fieldcat更改pt_fieldcat。
我-> MO_DATA_CHANGED-> MT_FIELDCATALOG = pt_fieldcat。
将LT_MOD_ROWS的行插入表me-> MO_DATA_CHANGED-> MT_MOD_CELLS。
将LT_MOD_ROWS行插入表ME-> MO_DATA_CHANGED-> MT_GOOD_CELLS。
将GT_OUTTAB的行插入表。
调用方法g_grid-> refresh_table_display。
GS_LAYOUT-STYLEFNAME ='CELLTAB'。
*强制打开GridModified标志
调用方法g_grid-> IF_CACHED_PROP〜SET_PROP
导出
propname ='GridModified'
propvalue ='1'
例外情况
其他= 0。
DATA l_valid TYPE char01。
调用方法g_grid-> check_changed_data
导入
e_valid = l_valid。
调用方法G_VERIFIER-> HANDLE_DATA_CHANGED
导出
ER_DATA_CHANGED =我-> MO_DATA_CHANGED
。
调用方法g_grid-> refresh_table_display。
嗨,
您需要开发自定义LSMW,并且您需要使用/scwm/fb_update FM更新表/scwm/binmat。 我已经通过致电上述FM解决了我的问题。
你好
您可以使用LSMW。
最好的问候
CarlosDíaz
嗨申曼克,
我知道如何通过excel文件上传mas数据以进行"其他交易"。
我的问题是/SCWM/BINMAT。 请为我提到的交易提出建议,因为交易数据的进一步内容正在通过ALV网格在数据库中进行更新,也许您会知道我们无法记录ALV Grid的步骤,因为它是"享受控制"。
嗨,
从9.0开始,您在EWM中有多个迁移工具事务,其中一个用于仓库产品迁移。 在此处,您可以选择"迁移固定仓位分配"。 仓库产品迁移-从LE-WM迁移-SAP库
现在,交易的一般思想是从ERP迁移到EWM,这意味着首先创建文件 与此事务一起使用ERP数据,然后上载-但是,当然没有人会强迫您执行第一步。 您需要测试文件格式,我现在并没有真正深入研究文档。
Brgds
Juergen
此存储类型在哪里检查? 这似乎是简单的选择。
嗨,Jasmin,
通过excel文件将大量数据上传到SAP ECC/EWM系统是一种简便的方法。
以下是上传过程要遵循的步骤:
(MS Word->插入->快速零件->字段)。
4.使用输入记录创建Excel文件。
5.通过逐步向导工具将Excel工作表上传到MS Word文件。
6.将新生成的文件复制到NOTEPAD文件并保存。
7.借助Created Recording将文件导入到SAP System中并执行,所有Excel数据都可以上传到SAP System中。
谢谢
Shimank Jain
一周热门 更多>