批量上传固定Bin映射

2020-08-16 22:25发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好

有什么方法可以使用CSV文件等定义固定的bin映射? 我知道交易/scwm/binmat,但是在这里我们不能通过csv等上传所有固定的垃圾箱,也不能使用第一次发布将产品固定到垃圾箱的配置。 但是我正在寻找csv文件上传,就像在EWM中存储仓和库存上传一样。

谢谢

Sasidhar Gupta

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好

有什么方法可以使用CSV文件等定义固定的bin映射? 我知道交易/scwm/binmat,但是在这里我们不能通过csv等上传所有固定的垃圾箱,也不能使用第一次发布将产品固定到垃圾箱的配置。 但是我正在寻找csv文件上传,就像在EWM中存储仓和库存上传一样。

谢谢

Sasidhar Gupta

付费偷看设置
发送
10条回答
大简至美
1楼 · 2020-08-16 22:52.采纳回答

你好

我在标准/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。

悠然的二货
2楼-- · 2020-08-16 22:47

嗨,

您需要开发自定义LSMW,并且您需要使用/scwm/fb_update FM更新表/scwm/binmat。 我已经通过致电上述FM解决了我的问题。

jovirus
3楼-- · 2020-08-16 22:46

你好

您可以使用LSMW。

最好的问候

CarlosDíaz

能不能别闹
4楼-- · 2020-08-16 22:55

嗨申曼克,

我知道如何通过excel文件上传mas数据以进行"其他交易"。

我的问题是/SCWM/BINMAT。 请为我提到的交易提出建议,因为交易数据的进一步内容正在通过ALV网格在数据库中进行更新,也许您会知道我们无法记录ALV Grid的步骤,因为它是"享受控制"。

渐行渐远_HoldOn
5楼-- · 2020-08-16 22:49

嗨,

从9.0开始,您在EWM中有多个迁移工具事务,其中一个用于仓库产品迁移。 在此处,您可以选择"迁移固定仓位分配"。 仓库产品迁移-从LE-WM迁移-SAP库

现在,交易的一般思想是从ERP迁移到EWM,这意味着首先创建文件 与此事务一起使用ERP数据,然后上载-但是,当然没有人会强迫您执行第一步。 您需要测试文件格式,我现在并没有真正深入研究文档。

Brgds

Juergen


派大星 ヾ
6楼-- · 2020-08-16 23:05

此存储类型在哪里检查? 这似乎是简单的选择。

灬番茄
7楼-- · 2020-08-16 23:04

嗨,Jasmin,

通过excel文件将大量数据上传到SAP ECC/EWM系统是一种简便的方法。

以下是上传过程要遵循的步骤:

  1. 首先为(/N/SCWM/MAT1)之类的事务创建记录
  2. 将您的录音下载到word文件中。
  3. 用(MS Word中的MERGE FIELDS列)替换输入字段

(MS Word->插入->快速零件->字段)。

4.使用输入记录创建Excel文件。

5.通过逐步向导工具将Excel工作表上传到MS Word文件。

6.将新生成的文件复制到NOTEPAD文件并保存。

7.借助Created Recording将文件导入到SAP System中并执行,所有Excel数据都可以上传到SAP System中。

谢谢

Shimank Jain

一周热门 更多>