ABAP CHECKBOX 和LISTBOX使用

REPORT ZJC20051014_1.

TYPE-POOLS: VRM. "存放combobox内容的type pool

DATA: NAME TYPE VRM_ID, "list box的名称

LIST TYPE VRM_VALUES, "list box的值

VALUE LIKE LINE OF LIST."list box的结构

*定义checkbox,指定command,为了能够响应选择屏幕中值的改变

PARAMETERS: P_CB1 TYPE C AS CHECKBOX DEFAULT 'X' USER-COMMAND CHECK,

P_CB2 TYPE C AS CHECKBOX DEFAULT 'X' USER-COMMAND CHECK.

*定义listbox,必须指定visible length

PARAMETERS: P_LIST1(10) TYPE C AS LISTBOX

VISIBLE LENGTH 15 ,

P_LIST2(20) TYPE C AS LISTBOX

VISIBLE LENGTH 25 .

*开始执行

AT SELECTION-SCREEN OUTPUT .

*选择1而没有选择2

IF P_CB1 = 'X' AND P_CB2 = ''.

*向listbox里面添加值

REFRESH LIST .

VALUE-KEY = '1111111111' . "这个就是变量P_LIST的值

VALUE-TEXT = '1111111111' . "这个是text

APPEND VALUE TO LIST .

VALUE-KEY = '2222222222' .

VALUE-TEXT = '2222222222' .

APPEND VALUE TO LIST .

VALUE-KEY = '3333333333' .

VALUE-TEXT = '3333333333' .

APPEND VALUE TO LIST .

*调用函数显示listbox里面的值

CALL FUNCTION 'VRM_SET_VALUES'

EXPORTING

ID = 'P_LIST1'

VALUES = LIST.

*把第二个listbox的值清空,并且不能输入

CLEAR P_LIST2 .

LOOP AT SCREEN .

IF SCREEN-NAME = 'P_LIST2' .

SCREEN-INPUT = 0 .

MODIFY SCREEN .

ENDIF .

ENDLOOP .

*选择2,没有选择1,同上

ELSEIF P_CB2 = 'X' AND P_CB1 = ''.

REFRESH LIST .

VALUE-KEY = 'AAAAAAAAAAAAAAAAAAAA' .

VALUE-TEXT = 'AAAAAAAAAAAAAAAAAAAA' .

APPEND VALUE TO LIST .

VALUE-KEY = 'BBBBBBBBBBBBBBBBBBBB' .

VALUE-TEXT = 'BBBBBBBBBBBBBBBBBBBB' .

APPEND VALUE TO LIST .

VALUE-KEY = 'CCCCCCCCCCCCCCCCCCCC' .

VALUE-TEXT = 'CCCCCCCCCCCCCCCCCCCC' .

APPEND VALUE TO LIST .

APPEND VALUE TO LIST .

CALL FUNCTION 'VRM_SET_VALUES'

EXPORTING

ID = 'P_LIST2'

VALUES = LIST.

*清空listbox 1的值

CLEAR P_LIST1 .

LOOP AT SCREEN .

IF SCREEN-NAME = 'P_LIST1' .

SCREEN-INPUT = 0 .

MODIFY SCREEN .

ENDIF .

ENDLOOP .

*都没有选择,都清空且不能输入

ELSEIF P_CB1 = '' AND P_CB2 = '' .

CLEAR: P_LIST1,P_LIST2 .

LOOP AT SCREEN .

IF SCREEN-NAME = 'P_LIST1' .

SCREEN-INPUT = 0 .

MODIFY SCREEN .

ENDIF .

ENDLOOP .

LOOP AT SCREEN .

IF SCREEN-NAME = 'P_LIST2' .

SCREEN-INPUT = 0 .

MODIFY SCREEN .

ENDIF .

ENDLOOP .

*都选,执行

ELSEIF P_CB1 = 'X' AND P_CB2 = 'X' .

REFRESH LIST .

VALUE-KEY = '1111111111' .

VALUE-TEXT = '1111111111' .

APPEND VALUE TO LIST .

VALUE-KEY = '2222222222' .

VALUE-TEXT = '2222222222' .

APPEND VALUE TO LIST .

VALUE-KEY = '3333333333' .

VALUE-TEXT = '3333333333' .

APPEND VALUE TO LIST .

CALL FUNCTION 'VRM_SET_VALUES'

EXPORTING

ID = 'P_LIST1'

VALUES = LIST.

REFRESH LIST .

VALUE-KEY = 'AAAAAAAAAAAAAAAAAAAA' .

VALUE-TEXT = 'AAAAAAAAAAAAAAAAAAAA' .

APPEND VALUE TO LIST .

VALUE-KEY = 'BBBBBBBBBBBBBBBBBBBB' .

VALUE-TEXT = 'BBBBBBBBBBBBBBBBBBBB' .

APPEND VALUE TO LIST .

VALUE-KEY = 'CCCCCCCCCCCCCCCCCCCC' .

VALUE-TEXT = 'CCCCCCCCCCCCCCCCCCCC' .

APPEND VALUE TO LIST .

CALL FUNCTION 'VRM_SET_VALUES'

EXPORTING

ID = 'P_LIST2'

VALUES = LIST.

ENDIF .

START-OF-SELECTION .

*输出到第二屏幕看看

WRITE: P_LIST1 ,/ P_LIST2 .


(0) 评论    (92) 引用   

Very useful functions of ABAP

ABAP_DOCU_DOWNLOAD - Download ABAP documentationin HTML format.

ARFC_GET_TID - will return the IP addressof the terminal in hex.

BAL_* -All function modules used for SAP's application logging can be found here.

BP_EVENT_RAISE -Trigger an event from ABAP/4 program

BP_JOBLOG_READ -Fetch job log executions

CLOI_PUT_SIGN_IN_FRONT - Place the negative signafter a number. SAP default is place the negative sign after the number.

CLPB_EXPORT -Export a text table to the clipboard (on presentation server)

CLPB_IMPORT - Import a Text Table fromthe Clipboard (on presentation server)

COMMIT_TEXT -To load long text into SAP

CONVERSION_EXIT_ALPHA_INPUT - converts any number into a string fill with zeroes-right

example:

input = 123

output = 0000000000000...000000000000123

CONVERSION_EXIT_ALPHA_OUTPUT - converts any number with zeroes-right into asimple integer

example:

input = 00000000000123

output = 123

CONVERT_OTF - Convert SAP documents (SAPScript) to othertypes.

example:

CALL FUNCTION 'CONVERT_OTF'

EXPORTING

FORMAT = 'PDF'

IMPORTING

BIN_FILESIZE = FILE_LEN

TABLES

OTF = OTFDATA

LINES = PDFDATA

EXCEPTIONS

ERR_MAX_LINEWIDTH = 1

ERR_FORMAT = 2

ERR_CONV_NOT_POSSIBLE = 3

OTHERS = 4.

DATE_GET_WEEK - will return the week that adate is in.

DATE_CHECK_PLAUSIBILITY - Check to see if a date isin a valid format for SAP. Works well when validating dates being passedin from other systems.

DOWNLOAD -download a file to the presentation server (PC)

DYNP_VALUES_READ - Read the values from adynpro. This function can be used to read the values from a report'sselection screen too (Another example).

DYNP_VALUES_UPDATE - Similar to DYNP_VALUES_READ, this function will allow the updating of fields on a dynpro. Very useful when you want to change a field based on the value entered foranother field.

ENQUE_SLEEP - Wait a specified period oftime before continuing processing.

ENQUEUE_ESFUNCTION - Lock an abap program sothat it cannot be executed. Set the parameters as follows:

RELID = 'ZZ'
SRTF2 = 0
SRTF = (your report name)

Please note that you should not useSY-REPID to pass your report name to the function. The value of SY-REPIDwill change as it is being passed to the function module, and will no longerhold the value of the calling report.

EPS_GET_FILE_ATTRIBUTES - Pass in a filename and a path, and will return attributes for thefile

EPS_GET_DIRECTORY_LISTING -return a list of filenames from a local or network drive

F4_DATE - displays a calendar in apopup window and allows user to choose a date, or it can be displayed readonly.

F4IF_SHLP_EXIT_EXAMPLE - documents the different reasons to use a search help exit, and showshow it is done.

FILENAME_GET -popup to get a filename from a user, returns blank filename if user selectscancel

FTP_CONNECT - Open a connection (and login) to an FTP server

FTP_COMMAND - Execute a command on theFTP server

FTP_DISCONNECT - Close the connection (andlog off) the FTP server

FORMAT_MESSAGE - Takes a message id andnumber, and puts it into a variable. Works better than WRITE_MESSAGE, sincesome messages use $ as a place holder, and WRITE_MESSAGE does not accommadatethat, it only replaces the ampersands (&) in the message.

GET_GLOBAL_SYMBOLS - Returns a list of all tables, select options, texts, etc for aprogram. Even includes the text definitions for the selection screen

GET_INCLUDETAB - Returns a list of allINCLUDES in a program

G_SET_GET_ALL_VALUES -Fetch values from a set.

Function Group GRAP is now obsolete. SAPrecommends using functions in function group SFES instead. Below is an overviewof the changes.

GUI_CREATE_DIRECTORY - Create a directory on thepresentation server

GUI_DELETE_FILE - Replaces WS_FILE_DELETE.Delete a file on the presentation server

GUI_DOWNLOAD - Replaces WS_DOWNLOAD. Download table from the app server to presentation server

GUI_EXEC - Replaces WS_EXECUTE. Start a File or Program Asynchronously with WinExec

GUI_GET_DESKTOP_INFO - Replaces WS_QUERY. DeliversInformation About the Desktop (client)

GUI_REMOVE_DIRECTORY - Delete a directory on thepresentation server

GUI_RUN - Start a File or ProgramAsynchronously with ShellExecute

GUI_UPLOAD - Replaces WS_UPLOAD. Upoad file from presentation server to the app server

HELP_START - Display help fora field. Useful for doing AT SELECTION SCREEN ON VALUE REQUEST for thosefields that do not provide F4 help at the DDIC level.

HOLIDAY_GET - Provides a table of all the holidays based upon a Factory Calendar&/ Holiday Calendar.

HR_DISPLAY_BASIC_LIST - is an HR function, but canbe used for any data. You pass it data, and column headers, and itprovides a table control with the ability to manipulate the data, and send itto Word or Excel. Also see the additional documentation here.

HR_GET_LEAVE_DATA - Get all leave information(includes leave entitlement, used holidays/paid out holidays)

INIT_TEXT -To load long text into SAP

K_WERKS_OF_BUKRS_FIND - Return a list of all plantsfor a given company code.

LIST_TO_ASCII -convert an ABAP report (displayed on screen) from OTF to ASCII format LIST_FROM_MEMORY - Retrievesthe output of a report from memory when the report was executed using SUBMIT...EXPORTING LIST TO MEMORY. See also WRITE_LIST.

MONTH_NAMES_GET -It returns all the month and names in repective language.

MS_EXCEL_OLE_STANDARD_OLE -will build a file, and automatically start Excel

OTF_CONVERT - wraps several otherfunction modules. Will convert OTF to ASCII or PDF

CONVERT_OTFSPOOLJOB_2_PDF -converts a OTF spool to PDF (i.e. Sapscript document)

CONVERT_ABAPSPOOLJOB_2_PDF -convert abap spool output to PDF

POPUP_TO_CONFIRM_LOSS_OF_DATA -Create a dialog box in which you make a question whether the user wishes toperform a processing step with loss of data.

POPUP_TO_CONFIRM_STEP - Create a dialogbox in which you make a question whether the user wishes to perform the step.

POPUP_TO_CONFIRM_WITH_MESSAGE -Create a dialog box in which you inform the user about a specific decisionpoint during an action.

POPUP_TO_CONFIRM_WITH_VALUE -Create a dialog box in which you make a question whether the user wishes toperform a processing step with a particular object.

POPUP_TO_DECIDE -Provide user with several choices as radio buttons

POPUP_TO_DECIDE_WITH_MESSAGE - Create a dialog box inwhich you inform the user about a specific decision point via a diagnosis text.

POPUP_TO_DISPLAY_TEXT -Create a dialog box in which you display a two-line message.

POPUP_TO_SELECT_MONTH - Popup to choose a month

POPUP_WITH_TABLE_DISPLAY -Provide a display of a table for user to select one, with the value of thetable line returned when selected.

PRICING - Return pricing conditionsin an internal table. Use structure TCOMK for parameter COMM_HEAD_1, andstructure TCOMP for parameter COMM_ITEM_1, and set CALCULATION_TYPE to B. The pricing conditions will be returned in XOMV. You must fill TCOMP, andTCOMK with the appropriate values before callling the function in order for itto work.

PROFILE_GET - Read an Entry in an INIFile on the frontend

PROFILE_SET - Write an Entry in an INIFile on the frontend

READ_TEXT -To load long text into SAP

REGISTRY_GET - Read an Entry from theRegistry

REGISTRY_SET - Set an entry in theRegistry

RFC_ABAP_INSTALL_AND_RUN - Runs an ABAP program that is stored in the table PROGRAM when theMODE = 'F'. Table WRITES contains the ouput of the program. Allows you torun a program without having the source code in the target system.

RH_GET_ACTIVE_WF_PLVAR - Return the active HR Plan

RH_GET_DATE_DAYNAME - return the day based on thedate provied

RH_START_EXCEL_WITH_DATA -startsExcel with the contents of an internal table. This function finds Excelin the desktop registry. It also uses a local PC working directory to save thefile (that's what the "W" value for data path flag does). Verytransparent to user!

RH_STRUC_GET -Returns all related org info

RP_CALC_DATE_IN_INTERVAL - Add/subtractyears/months/days from a date

RP_LAST_DAY_OF_MONTHS -Determine last day of month

RPY_DYNPRO_READ - Read dynpro, includingscreen flow

RPY_TRANSACTION_READ - Given a transaction, returnthe program and screen or given a program and screen, return the transactionsthat use the program and screen.

RS_COVERPAGE_SELECTIONS - Returns an internal tablethat contains a formatted list of all the selection parameters entered for a report. Table is ready to print out.

RS_REFRESH_FROM_SELECTOPTIONS -Get the current contents of selection screen

RS_SEND_MAIL_FOR_SPOOLLIST -Send message from ABAP/4 program to SAPoffice.

RS_VARIANT_CONTENTS -Returns the contents of the specified variant in a table.

RZL_SLEEP -Hang the current application from to 5 seconds.

RZL_SUBMIT -Submit a remote report.

RZL_READ_DIR_LOCAL -Read a directory on the Application Server

RZL_READ_DIR - If the server name is leftblank, it reads a directory from local presentation server, otherwise it readsthe directory of the remote server

RZL_READ_FILE - Read a file from thepresentation server if no server name is given, or read file from remoteserver. Very useful to avoid authority checks that occur doing an OPENDATASET. This function using a SAP C program to read the data.

RZL_WRITE_FILE_LOCAL - Saves table to thepresentation server (not PC). Does not use OPEN DATASET, so itdoes not suffer from authority checks!

SAPGUI_PROGRESS_INDICATOR - Display a progress bar onthe SAP GUI, and give the user some idea of what is happening

SAVE_TEXT -To load long text into SAP

SCROLLING_IN_TABLE -Ifyou are coding a module pool and using a table-control, you can use thisfunction SCROLLING_IN_TABLE to handle any scrolling.(provided by Paul Kjaer)

SD_DATETIME_DIFFERENCE - Give the difference in Days and Time for 2dates

SO_NEW_DOCUMENT_ATT_SEND_API1 - Send a document as part ofan email. The documentation is better than normal for this function, so pleaseread it.

SO_SPLIT_FILE_AND_PATH -Split a fully pathed filename into a filename and a path.

SO_SPOOL_READ -Fetch printer spool according to the spool number informed.

SO_WIND_SPOOL_LIST -Browse printer spool numbers according to user informed.

SX_OBJECT_CONVERT_OTF_PDF - Conversion From OTF to PDF(SAPScript conversion)

SX_OBJECT_CONVERT_OTF_PRT - Conversion From OTF to PrinterFormat (SAPScript conversion)

SX_OBJECT_CONVERT_OTF_RAW - Conversion From OTF to ASCII(SAPScript conversion)

SXPG_CALL_SYSTEM - you can check theuser's authorization for the specified command and run the command. The commandruns on the host system on which the function module is executed. The functionmodule is RFC-capable. It can therefore be run on the host system at which auser happens to be active or on another designated host system at which an R/3server is active.

SXPG_COMMAND_LIST_GET - Select a list of externalOS command definitions.

SXPG_COMMAND_DEFINITION_GET - Read the definition of asingle external OS command from the R/3 System's database.

SXPG_COMMAND_CHECK - Check whether the user isauthorized to execute the specified command on the target host system with thespecified arguments.

SXPG_COMMAND_EXECUTE - Check a user'sauthorization to use a command, as in SXPG_COMMAND_CHECK. If the authorization check is successful, then execute the commandon the target host system.

TERMINAL_ID_GET -Return the terminal id

TH_DELETE_USER - Logoff a user. Similar results to using SM04.

TH_ENVIRONMENT - Get the UNIX environment

TH_POPUP -Display a popup system message on a specific users screen.

TH_REMOTE_TRANSACTION - Run a transaction on aremote server. Optionally provide BDC data to be used in the transaction

TH_USER_INFO - Give information about thecurrent user (sessions, workstation logged in from, etc)

TH_USER_LIST - Show which users are loggedinto an app server

UNIT_CONVERSION_SIMPLE -convert weights from one UOM to another.

UPLOAD -upload a file to the presentation server (PC)

UPLOAD_FILES - Will load one or more filesfrom app or presentation server

WRITE_LIST -Usefulfor writing out the list contents that result from the function LIST_FROM_MEMORY.

WS_DOWNLOAD -Save Internal Table as File on the Presentation Server

WS_EXCEL -Start EXCEL on the PC

WS_EXECUTE -execute a program on a windows PC

WS_FILE_DELETE -Delete File at the Frontend

WS_FILENAME_GET -Call File Selector

WS_MSG -Create a dialog box in which you display an one-line message.

WS_UPLOAD - Load Files fromthe Presentation Server to Internal ABAP Tables

WS_VOLUME_GET -Get the label from a frontend device.

WWW_LIST_TO_HTML - After running a report, call this function toconvert the list output to HTML.

(1) 评论    (70) 引用   

正确地使用SAP的标准对话框函数

http://blog.csdn.net/cissor/archive/2007/02/12/1508552.aspx

(0) 评论    (93) 引用   

ABAP常用fuction

http://blog.csdn.net/cissor/archive/2007/02/07/1504905.aspx

-----------------------------------------------------
获取生产定单状态
-----------------------------------------------------
call function 'STATUS_TEXT_EDIT'
EXPORTING
flg_user_stat = 'X'
objnr = LO_OBJNR
only_active = 'X'
spras = sy-langu
IMPORTING
line = ls_statu
EXCEPTIONS
object_not_found = 01.


使用:objnr 状态对象号,only_active 激活的 ,


-----------------------------------------------------

--------------------------------------------------
获取每个月的最后一天
---------------------------------------------------
CALL FUNCTION 'LAST_DAY_OF_MONTHS'
EXPORTING
day_in = date
IMPORTING
last_day_of_month = date1.

-------------------------------------------------------

--------------------------------------------------------------
去掉前面0
*&--------------------------------------------------------------------*
*& Form frm_alpha_output 去零
*&--------------------------------------------------------------------*
DEFINE alpha_minus.
call function 'CONVERSION_EXIT_ALPHA_OUTPUT'
exporting
input = &1
importing
output = &1.
END-OF-DEFINITION.

---------------------------------------------------
前面加0
---------------------------------------------------
call function 'CONVERSION_EXIT_ALPHA_INPUT'
exporting
input = &1
importing
output = &1.

------------------------------------------------

踢用户
TH_DELETE_USER
---------------------------------------
CALL FUNCTION 'CUT_2BYTES_STRINGS'
EXPORTING
I_STR = T_STR
I_LEN = 4
IMPORTING
O_STR = T_TXT04
T_STR 输入字符 I_LEN 长度 T_TXT04输出字符

金额转换成大写
CALL FUNCTION 'SPELL_AMOUNT'
EXPORTING
AMOUNT = T_AMOUNT10
CURRENCY = 'RMB'
LANGUAGE = '1'
IMPORTING
IN_WORDS = S_AMWORD2
EXCEPTIONS
NOT_FOUND = 1
TOO_LARGE = 2
OTHERS = 3.

把SAP里的负号放到前面来的函数
CLOI_PUT_SIGN_IN_FRONT
使用示例

DATA : t(10) TYPE c VALUE '65465-' .

CALL FUNCTION 'CLOI_PUT_SIGN_IN_FRONT'
CHANGING
value = t.

write : t .

-------------------------------------------
通过这个日期得出那天是星期几
DAY_IN_WEEK

----------------------------------------
用来得到将来/过去的日期的
RP_CALC_DATE_IN_INTERVAL

-------------------------------------------
日期的加减
BKK_ADD_MONTH_TO_DATE
--------------------------------------------------------------------


一组有用的用户交互窗口函数
POPUP_TO_CONFIRM_LOSS_OF_DATA 显示有YES/NO的弹出窗口,提示用户未保存的数据将丢失

POPUP_TO_CONFIRM_STEP 提示是否确认操作的弹出窗口

POPUP_TO_CONFIRM_WITH_MESSAGE 可以显示定制的提示信息的确认窗口

POPUP_TO_CONFIRM_WITH_VALUE 显示确认用户对某个特定对象的操作的弹出窗口

POPUP_TO_DECIDE 将待确认选项以单选按钮的方式显示的弹出窗口

POPUP_TO_DECIDE_WITH_MESSAGE 带消息的确认窗口

POPUP_TO_DISPLAY_TEXT 显示多行信息的窗口

POPUP_TO_SELECT_MONTH 月份选择窗口

POPUP_WITH_TABLE_DISPLAY 有表格对象的确认窗口


一组操纵客户端文件系统的函数
GUI_CREATE_DIRECTORY 在PC上建立文件目录

GUI_DELETE_FILE 删除PC上的文件

GUI_DOWNLOAD 文件下载函数

GUI_EXEC 执行PC上的程序,或者打开文件

GUI_GET_DESKTOP_INFO 得到PC客户端的系统信息,比如操作系统等

GUI_REMOVE_DIRECTORY 删除PC目录

GUI_RUN 运行PC程序(ShellExecute)

GUI_UPLOAD 从PC上传程序


判断某天是否是假日
HOLIDAY_CHECK_AND_GET_INFO

ABAP_DOCU_DOWNLOAD
Download ABAP documentation in HTML format.

GET_CURRENT_YEAR
得到当前的财政年(fiscal year)


察看某日期的属性,包括该日期是星期几,第几天(周2=2),是不是公共假期等,需要输入国家日历。

DAY_ATTRIBUTES_GET

Return useful information about a day. Will tell you the day of the week as a word (Tuesday), the day of the week (2 would be Tuedsay), whether the day is a holiday, and more.(provided by Francois Henrotte)?




CLPB_IMPORT :从剪贴板导入internal table
CLPB_EXPORT:从internal table输入到剪贴板

示例程序:GRCLPB_1

在SE38环境下的程序名输入栏输入'DEMO*'后按F4,你可以查到SAP所有的DEMO示例程序,会学到很多ABAP功能的实现方法,输入'BCALV*'后按F4,你可以查到很多ALV示例程序

(0) 评论    (738) 引用   

ERP的发展历程

Copy from http://www.ccw.com.cn/htm/net/erp/door/01_10_29_4.asp

七十年代闭环MRP
60年代时段式MRP能根据有关数据计算出相关物料需求的准确时间与数量,但它还不够完善,其主要缺陷是没有考虑到生产企业现有的生产能力和采购的有关条 件的约束。因此,计算出来的物料需求的日期有可能因设备和工时的不足而没有能力生产,或者因原料的不足而无法生产。同时,它也缺乏根据计划实施情况的反馈 信息对计划进行调整的功能。
正是为了解决以上问题,MRP系统在七十年代发展为闭环MRP系统。闭环MRP系统除了物料需求计划外,还将生产能力需求计划、车间作业计划和采购作业计划也全部纳入MRP,形成一个封闭的系统。
1.闭环MRP的原理与结构
MRP系统的正常运行,需要有一个现实可行的主生产计划。它除了要反映市场需求和合同订单以外,还必须满足企业的生产能力约束条件。因此,除了要编制资源 需求计划外,我们还要制定能力需求计划(CRP),同各个工作中心的能力进行平衡。只有在采取了措施做到能力与资源均满足负荷需求时,才能开始执行计划。
而要保证实现计划就要控制计划,执行MRP时要用派工单来控制加工的优先级,用采购单来控制采购的优先级。这样,基本MRP系统进一步发展,把能力需求计划和执行及控制计划的功能也包括进来,形成一个环形回路,称为闭环MRP,如图1示。
图1 闭环MRP逻辑流程图
因此,闭环MRP则成为一个完整的生产计划与控制系统。
2.能力需求计划(Capacity Requirement Planning, CRP)
(1)资源需求计划与能力需求计划
在闭环MRP系统中,把关键工作中心的负荷平衡称为资源需求计划,或称为粗能力计划,它的计划对象为独立需求件,主要面向的是主生产计划;把全部工作中心 的负荷平衡称为能力需求计划,或称为详细能力计划,而它的计划对象为相关需求件,主要面向的是车间。由于MRP和MPS之间存在内在的联系,所以资源需求 计划与能力需求计划之间也是一脉相承的,而后者正是在前者的的基础上进行计算的。
(2)能力需求计划的依据
①工作中心:它是各种生产或加工能力单元和成本计算单元的统称。对工作中心,都统一用工时来量化其能力的大小。
②工作日历:是用于编制计划的特殊形式的日历,它是由普通日历除去每周双休日、假日、停工和其它不生产的日子,并将日期表示为顺序形式而形成的。
③工艺路线:是一种反映制造某项"物料"加工方法及加工次序的文件。它说明加工和装配的工序顺序,每道工序使用的工作中心,各项时间定额,外协工序的时间和费用等。
④由MRP输出的零部件作业计划。
(3)能力需求计划的计算逻辑
闭环MRP的基本目标是满足客户和市场的需求,因此在编制计划时,总是先不考虑能力约束而优先保证计划需求,然后再进行能力计划。经过多次反复运算,调整 核实,才转入下一个阶段。能力需求计划的运算过程就是把物料需求计划定单换算成能力需求数量,生成能力需求报表。这个过程可用图2来表示。
图2 能力需求报表生成过程
当然,在计划时段中也有可能出现能力需求超负荷或低负荷的情况。闭环MRP能力计划通常是通过报表的形式(直方图是常用工具)向计划人员报告之,但是并不进行能力负荷的自动平衡,这个工作由计划人员人工完成。
3.现场作业控制
各工作中心能力与负荷需求基本平衡后,接下来的一步就要集中解决如何具体地组织生产活动,使各种资源既能合理利用又能按期完成各项订单任务,并将客观生产 活动进行的状况及时反馈到系统中,以便根据实际情况进行调整与控制,这就是现场作业控制。它的工作内容一般包括以下四个方面: 车间定单下达:定单下达是核实MRP生成的计划订单,并转换为下达定单。
作业排序:它是指从工作中心的角度控制加工工件的作业顺序或作业优先级。
投入产出控制:是一种监控作业流(正在作业的车间定单)通过工作中心的技术方法。利用投入/产出报告,可以分析生产中存在的问题,采取相应的措施。
作业信息反馈:它主要是跟踪作业定单在制造过程中的运动,收集各种资源消耗的实际数据,更新库存余额并完成MRP的闭环。
八十年代的MRPII
闭环MRP系统的出现,使生产活动方面的各种子系统得到了统一。但这还不够,因为在企业的管理中,生产管理只是一个方面,它所涉及的仅仅是物流,而与物流 密切相关的还有资金流。这在许多企业中是由财会人员另行管理的,这就造成了数据的重复录入与存贮,甚至造成数据的不一致性。
于是,在八十年代,人们把生产、财务、销售、工程技术、采购等各个子系统集成为一个一体化的系统,并称为制造资源计划(Manufacturing Resource Planning)系统,英文缩写还是MRP,为了区别物流需求计划(亦缩写为MRP)而记为MRP II。
1.MRPⅡ的原理与逻辑
MRPⅡ的基本思想就是把企业作为一个有机整体,从整体最优的角度出发,通过运用科学方法对企业各种制造资源和产、供、销、财各个环节进行有效地计划、组织和控制,使他们得以协调发展,并充分地发挥作用。
MRPⅡ的逻辑流程图如图1所示。
图1 MRPⅡ逻辑流程图
在流程图的右侧是计划与控制的流程,它包括了决策层、计划层和控制执行层,可以理解为经营计划管理的流程;中间是基础数据,要储存在计算机系统的数据库 中,并且反复调用。这些数据信息的集成,把企业各个部门的业务沟通起来,可以理解为计算机数据库系统;左侧是主要的财务系统,这里只列出应收帐、总帐和应 付帐。各个联线表明信息的流向及相互之间的集成关系。
2.MRPⅡ管理模式的特点
MRPⅡ的特点可以从以下几个方面来说明,每一项特点都含有管理模式的变革和人员素质或行为变革两方面,这些特点是相辅相成的。
1.计划的一贯性与可行性
MRPⅡ是一种计划主导型管理模式,计划层次从宏观到微观、从战略到技术、由粗到细逐层优化,但始终保证与企业经营战略目标一致。它把通常的三级计划管理 统一起来,计划编制工作集中在厂级职能部门,车间班组只能执行计划、调度和反馈信息。计划下达前反复验证和平衡生产能力,并根据反馈信息及时调整,处理好 供需矛盾,保证计划的一贯性、有效性和可执行性。
2.管理的系统性
MRPⅡ是一项系统工程,它把企业所有与生产经营直接相关部门的工作联结成一个整体,各部门都从系统整体出发做好本职工作,每个员工都知道自己的工作质量同其他职能的关系。这只有在"一个计划"下才能成为系统,条块分割、各行其是的局面应被团队精神所取代。
3.数据共享性
MRPⅡ是一种制造企业管理信息系统,企业各部门都依据同一数据信息进行管理,任何一种数据变动都能及时地反映给所有部门,做到数据共享。在统一的数据库支持下,按照规范化的处理程序进行管理和决策。改变了过去那种信息不通、情况不明、盲目决策、相互矛盾的现象。
4.动态应变性
MRPⅡ是一个闭环系统,它要求跟踪、控制和反馈瞬息万变的实际情况,管理人员可随时根据企业内外环境条件的变化迅速作出响应,及时决策调整,保证生产正常进行。它可以及时掌握各种动态信息,保持较短的生产周期,因而有较强的应变能力。
5.模拟预见性
MRPⅡ具有模拟功能。它可以解决"如果怎样将会怎样"的问题,可以预见在相当长的计划期内可能发生的问题,事先采取措施消除隐患,而不是等问题已经 发生了再花几倍的精力去处理。这将使管理人员从忙碌的事务堆里解脱出来,致力于实质性的分析研究,提供多个可行方案供领导决策。 6.物流、资金流的统一
MRPⅡ包含了成本会计和财务功能,可以由生产活动直接产生财务数据,把实物形态的物料流动直接转换为价值形态的资金流动,保证生产和财务数据一致。财务 部门及时得到资金信息用于控制成本,通过资金流动状况反映物料和经营情况,随时分析企业的经济效益,参与决策,指导和控制经营和生产活动。
以上几个方面的特点表明,MRPⅡ是一个比较完整的生产经营管理计划体系,是实现制造业企业整体效益的有效管理模式。
九十年代的ERP系统
进入90年代,随着市场竞争的进一步加剧,企业竞争空间与范围的进一步扩大,80年代MRPⅡ主要面向企业内部资源全面计划管理的思想逐步发展为90年代 怎样有效利用和管理整体资源的管理思想,ERP(Enterprise Resource Planning)企业资源计划也就随之产生。ERP是在MRP-Ⅱ的基础上扩展了管理范围,给出了新的结构。
1.ERP同MRPⅡ的主要区别
在资源管理范围方面的差别
MRP II主要侧重对企业内部人、财、物等资源的管理,ERP系统在MRP II的基础上扩展了管理范围,它把客户需求和企业内部的制造活动、以及供应商的制造资源整合在一起,形成企业一个完整的供应链并对供应链上所有环节如订 单、采购、库存、计划、生产制造、质量控制、运输、分销、服务与维护、财务管理、人事管理、实验室管理、项目管理、配方管理等进行有效管理。 在生产方式管理方面的差别
MRP II系统把企业归类为几种典型的生产方式进行管理,如重复制造、批量生产、按订单生产、按订单装配、按库存生产等,对每一种类型都有一套管理标准。而在 80年代末、90年代初期,为了紧跟市场的变化,多品种、小批量生产以及看板式生产等则是企业主要采用的生产方式,由单一的生产方式向混合型生产发展, ERP则能很好地支持和管理混合型制造环境,满足了企业的这种多角化经营需求。
在管理功能方面的差别
ERP除了MRP II系统的制造、分销、财务管理功能外,还增加了支持整个供应链上物料流通体系中供、产、需各个环节之间的运输管理和仓库管理;支持生产保障体系的质量管理、实验室管理、设备维修和备品备件管理;支持对工作流(业务处理流程)的管理。
在事务处理控制方面的差别
MRP II是通过计划的及时滚动来控制整个生产过程,它的实时性较差,一般只能实现事中控制。而ERP系统支持在线分析处理OLAP(Online Analytical Processing)、售后服务即质量反馈,强调企业的事前控制能力,它可以将设计、制造、销售、运输等通过集成来并行地进行各种相关的作业,为企业提 供了对质量、适应变化、客户满意、绩效等关键问题的实时分析能力。
此外,在MRP II中,财务系统只是一个信息的归结者,它的功能是将供、产、销中的数量信息转变为价值信息,是物流的价值反映。而ERP系统则将财务计划和价值控制功能集成到了整个供应链上。
在跨国(或地区)经营事务处理方面的差别
现在企业的发展,使得企业内部各个组织单元之间、企业与外部的业务单元之间的协调变得越来越多和越来越重要,ERP系统应用完整的组织架构,从而可以支持跨国经营的多国家地区、多工厂、多语种、多币制应用需求。
在计算机信息处理技术方面的差别
随着IT技术的飞速发展,网络通信技术的应用,使得ERP系统得以实现对整个供应链信息进行集成管理。ERP系统采用客户/服务器(C/S)体系结构和分 布式数据处理技术,支持Internet/Intranet/Extranet、电子商务(E-business、E-commerce)、电子数据交换 (EDI)。此外,还能实现在不同平台上的互操作。
2.ERP系统的管理思想
ERP的核心管理思想就是实现对整个供应链的有效管理,主要体现在以下三个方面:
体现对整个供应链资源进行管理的思想
现代企业的竞争已经不是单一企业与单一企业间的竞争,而是一个企业供应链与另一个企业的供应链之间的竞争,即企业不但要依靠自己的资源,还必须把经营过程 中的有关各方如供应商、制造工厂、分销网络、客户等纳入一个紧密的供应链中,才能在市场上获得竞争优势。ERP系统正是适应了这一市场竞争的需要,实现了 对整个企业供应链的管理。
体现精益生产、同步工程和敏捷制造的思想
ERP系统支持都混合型生产方式的管理,其管理思想表现在两各方面:其一是精益生产LP(Lean Production)的思想,即企业把客户、销售代理商、供应商、协作单位纳入生产体系,同他们建立起利益共享的合作伙伴关系,进而组成一个企业的供 应链。其二是敏捷制造(Agile Manufacturing)的思想。当市场上出现新的机会,而企业的基本合作伙伴不能满足新产品开发生产的要求时,企业组织一个由特定的供应商和销售 渠道组成的短期或一次性供应链,形成虚拟工厂,把供应和协作单位看成是企业的一个组成部分,运用同步工程(SE),组织生产,用最短的时间将新产 品打入市场,时刻保持产品的高质量、多样化和灵活性,这即是敏捷制造的核心思想。
体现事先计划与事中控制的思想
ERP系统中的计划体系主要包括:主生产计划、物流需求计划、能力计划、采购计划、销售执行计划、利润计划、财务预算和人力资源计划等,而且这些计划功能 与价值控制功能已完全集成到整个供应链系统中。另一方面,ERP系统通过定义事务处理(Transaction)相关的会计核算科目与核算方式,在事务处 理发生的同时自动生成会计核算分录,保证了资金流与物流的同步记录和数据的一致性。从而实现了根据财务资金现状,可以追溯资金的来龙去脉,并进一步追溯所 发生的相关业务活动,便于实现事中控制和实时做出决策。
至此我们就完成了对整个ERP原理的介绍。当然,ERP仍旧处于不断发展变化的过程中。对于它的最新发展,我们还会在以后的系列中给予详尽的介绍。最后,作为一个总结,我们可以通过图1来对ERP发展的几个主要阶段进行一下简要的回顾:
图1 ERP发展阶段图


(0) 评论    (16) 引用   

List of ABAP Functions

(0) 评论    (53) 引用   

good sample and tutorial about ALV

(0) 评论    (91) 引用   

build search help manually in ABAP

FORM frm_f4_help TABLES it_value_table
USING pa_retfield TYPE dfies-fieldname
pa_dynpprog TYPE sy-repid
pa_dynpnr TYPE sy-dynnr
pa_dynprofield TYPE help_info-dynprofld
pa_text TYPE c
pa_value_s TYPE ddbool_d.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = pa_retfield
dynpprog = pa_dynpprog
dynpnr = pa_dynpnr
dynprofield = pa_dynprofield
window_title = pa_text
value_org = pa_value_s
TABLES
value_tab = it_value_table
EXCEPTIONS
parameter_error = 1
no_values_found = 2
OTHERS = 3.
ENDFORM. " FRM_F4_HELP


(0) 评论    (190) 引用