2010年2月28日 星期日

ERP 顧問視野 從台東上岸就以為台灣就是這麼乾淨

請給我客戶名稱
請給我購買機型
請給我購買機號

我就可以知道你的 BOM
而且知道你是何日產出 何日交貨
重點是提供了用料版次
設計變更方面更是詳細
因為修補品才不會弄錯



業務最前線/優化客戶資訊流
【經濟日報╱吳育宏】

2010.03.01 02:59 am


每天早晨走到巷口的早餐店,幹練的老闆只需要三秒鐘的時間,
就可以辨識出我是誰,總是點鮪魚三明治加奶茶的老顧客。
但是當場景換到企業市場,我們卻常遇到自稱業界一流的大型供應商,
面對緊急的客戶需求或品質問題,以牛步的速度在確認基本資訊。

從數十人的小公司,到花費上千萬元導入ERP
(Enterprise Resource Planning,企業資源規劃)
或CRM(Customer Relationship Management,顧客關係管理)
的大型企業,
在客戶資訊的「透明度」和「流動性」上都有改善的空間。

這表示與客戶有關的訊息,應該更有效率地在組織內傳遞,
促成市場開發、售後服務、後勤支援的合作無間。

對於產品生命周期短、規格標準化,但顧客群廣大的快速消費品業
(FMCG,Fast Moving Consumer Goods)來說,
資訊流優化的挑戰,主要來自對終端消費市場的掌握程度。
舉凡顧客的消費能力、採購習性、使用偏好等,
透過市場調查或資料庫的分析,形成消費者洞見(Consumer Insights),
提供業務和行銷部門行動的方針。

至於在產品和服務內容較為複雜、客製化程度高,
營收集中在少數關鍵客戶的B2B產業,
資訊流優化的挑戰轉而在企業內部。

例如,塑膠射出成型機的客戶,
購買的不同機型有各自的零件材料表(BOM,Bill of Materials),
並在不同時間進行了設計變更。

若每台機器有五年的運作壽命,
要維持零件系統資訊的正確無誤,
成為一項極具挑戰性的任務。

又或者,客戶分散在海外的收貨工廠,
有各自不同的包裝標示、報關流程等要求,
若是沒有定期更新客戶的運輸要求,隨時可能因為文件不符規定、包裝錯誤等因素造成運輸延誤。

不論是哪一種產業型態,業務單位要優化客戶資訊流,必須先「盤點」所有和客戶有關的重要資訊是什麼。大自客戶的資本額、營業額、成長率預測,小至交易項目、數量、金額的統計,或是使用偏好、未來發展潛力等需要業務人員判斷的軟性資訊。

然後建立一個能和所有單位充分分享的平台,完整呈現、傳遞、更新這些資訊。

它可以是現行的ERP和CRM系統,或是公司內部網路的共用資料夾,甚至僅是一張EXCEL報表。

最後再以客戶的角度不斷檢討,如何更完整、更正確地傳遞這些資訊,讓前線業務人員更快速地掌握客戶狀況,以及後勤客服單位更精準地滿足客戶需求。

當企業對市場變化和客戶需求的反應速度更為敏捷,而其資訊系統真正為開發顧客、服務顧客而存在,企業就會回歸到基本面,建立具競爭力的客戶經營能力,如同幹練的早餐店老闆。

(作者是企管顧問公司高級顧問,yuhung.wu@yahoo.com.tw)

2010年2月26日 星期五

ERP 培基數碼 還停在 1980 年的編碼法

ERP資料編碼-基礎篇

人氣 0
作者:培基數碼 發表於2010/1/12 上午 10:31:37

談到ERP的宏圖大業,會有諸如結合企業經營策略、
增強企業整體競爭力等影響深遠值得思索的議題,
也有許多如何料帳準確、降低庫存、提升效率等有待討論改進的作業流程。
但是在此之前,有一項更基本的、更關鍵性的工作,就是資料編碼制度的設計。
的確,許多ERP 實施的問題就出在資料編碼上。


在ERP操作過程中,編號可以說是無所不在。
基本上資料只要進ERP系統,就會涉及到編號問題。
資料編碼的技術是?馬步的基層功夫,
於其羡慕王建民的伸卡球,不如先把球投到捕手手套裡吧,
於其高談闊論ERP的實施成效,
不如先建立正確的ERP資料編碼基本觀念吧。

從客戶編號說起

『給客戶編一個號』,這在企業早已是行之有年。
不過在人工作業時代,
客戶編號介於可有可無之間,編號的方式也簡單,
例如直接以客戶的簡稱做為編號便可。
然而在推動ERP 之後,
客戶編號郤從最好有(Nice To Have)變成了必須有(Must Have),
所以新客戶建檔的第一個動作便是要給一個客戶號。問題來了,
如何能夠讓客戶號的編碼有系統性?誰來編?如何編?
尤其是不同的人、甚或不同的辦公室,
都需要為新客戶號時,更需要有明確的編碼規則,
以避免重複,並符合電腦處理上的要求。

不單是客戶如此,供應商、產品或其他資料的編碼亦是如此,
要善用ERP,就得有一套適當的資料編碼制度,
要設計編碼制度先得對資料編碼的本質有所了解,
並針對各資料的特性,方能規畫出合於己用的資料編碼方式。

資料編碼的好壞對ERP作業流程及效率的改善上,
會起關鍵性的作用,
而且資料編碼的設計在一開始時便要作對
(ERP實施中途改編號會是一場大災難)。
在ERP推動的過程中,
如果我們仍用舊的思維來處理ERP 上的編碼問題,
就喪失了改變管理體質的大好時機。

>>> 古話連篇
>>> 無意義編號+多重類別定義
>>> 才是硬道理




編號的兩大任務

編號,在電腦作業上的首要任務就是識別,所以編號亦稱為識別號。
不但要讓人能識別,更重要的是要方便於電腦識別,
務必要做做到一人一號、一物一號、一單一號,絕對不容混淆。
人工作業對於重號還可以用其他的方式例如規格、說明、日期等予以分辨識別,
但電腦作業則否(人比較聰明,此又得一證明)。
同一類東西,
如果有一物兩號或兩物一號的情形,
電腦就分辨不出來了,ERP就垮了。

>>
>>一物兩號一定是不同供應商或不同批次
>>兩物一號是因為系統沒有將屬性材質尺寸
>>系統會告知你的編號重複或此物品以編號
>>

資料在頻繁的增添刪除過程中,
如何有秩序的確保做到一物一號,
是要有條理及方法的,
資料編碼的精神及訣竅盡在此中。

編號第二個重要任務便是排序,
就是依編號的大小來排的順序,
因為資料的列印及顯示經常是依編號順序的,而順序也意味著基本分類,
因為我們總希望同一類的東西顯示時排列在一起。
資料編碼方式即暗示著資料的顯示順序有決定性的影響。

至於在資料分類及查詢的角度上,
編號反倒沒有那麼重要了,
因為一般ERP可以用各種角度來分類或查資料,
不似人工作業時代,
查資料不方便,
故而往往在編號上放上很多的含意,
例如第一碼代表什麼意思,
第二碼代表某種分類等,
以便在看編號時便可了解很多事情。
但在電腦作業的時代,
這樣做反而會讓編碼變得較複雜,
甚至傷害到編號在識別及排序的考量。
編號的組成-英文與數字

人工作業時,代碼可以使用任何符號而不受限制,
但電腦作業則不成,電腦作業時,
代碼通常由阿拉伯數字及英文字母大寫所組成。
在排列的順序上,
則以數字0最小,
英文字母Z最大。

編號不宜用中文。
為了操作上的方便,
一般的ERP系統對編號的內容通常會做大小寫轉換的處理,
也就是說,在編號欄,不管你輸入的是「A」還是「a」,
電腦都一律自動轉為「A」。
如果編號裡有中文,電腦在進行大小寫轉換時,會破壞掉其中的中文。

>> Unicode standard UTF-8 AL32UTF8
>>

如果你在ERP的資料中看到一些無厘頭的中文,
九成是編號大小寫轉換的結果。
為了降低混淆及誤判,編號通常會避免使用英文字母I及O,
因為與數字1及0太像了,容易造成輸入及識別上的錯誤。
身份證字號第一碼的英文字不含I和O就是一個最好的例子。

除了數字及字母外,
有些時候我們會把一些特殊符號放在編號內。
這些特殊符號中除了’-‘、 ’_’等分隔符號外,
其他的符號應盡可能避免。尤其是’*’號及&|?等符號,
在電腦查詢及邏輯條件的設定上,
這些符號往往有特定的涵義,
若使用這些符號可能會造成查詢上的困擾。
除此之外,使用特殊符號時,
也需考慮條碼化的可行性,
以最常用的39碼為例,
除了數字及字母外,
只接受’+’、’-’、’*’、’/’、’%’、’$’六個符號。
(有些條碼例如EAN 碼甚至只能有數字)。 

使用文字或數字的另一項考量是碼的長度。
若為數字,則一碼最多有10種變化(0-9),
若為文字則一碼可有24種變化(A-Z去除 I及O)。
同一數目的資料,碼的變化越多,
碼長可縮得越短。
當然,我們也可以文數字合用,那一碼就有34種變化,
以此類推。注意,若文數字合用,
電腦在排序上,通常數字排在字母的前面。
其他相關議題

ERP時代的資料編碼,除了基於對上述編碼本質上的了解之外,還牽涉到諸如編碼的方式、碼長的考量、編碼規則等技術性的問題。更重要的是,如何考量資料應用的特性,並與ERP的功能做最佳的結合(例如商品編號與條碼的結合)。這些相關的議題都可另撰專文做進一步討論,在此,不妨先針對ERP資料編碼的基本認識做一總結。

1. 資料編碼對ERP實施的順暢與否有決定性影響,並要在開始時就作對。
2. 資料編碼的核心需求在識別,其次在排序。
3. 碼的組成包括數字、大寫字母、及’-’, ’_’分隔符號,不宜使用其他的符號。

2010年2月22日 星期一

ERP JR DataSource

1. package test.report;
2.
3. import java.math.BigDecimal;
4. import java.sql.Connection;
5. import java.sql.DriverManager;
6. import java.sql.PreparedStatement;
7. import java.sql.ResultSet;
8. import java.sql.SQLException;
9. import java.util.HashMap;
10.
11. import net.sf.jasperreports.engine.JRException;
12. import net.sf.jasperreports.engine.JRResultSetDataSource;
13. import net.sf.jasperreports.engine.JasperCompileManager;
14. import net.sf.jasperreports.engine.JasperExportManager;
15. import net.sf.jasperreports.engine.JasperFillManager;
16. import net.sf.jasperreports.engine.JasperPrint;
17. import net.sf.jasperreports.engine.JasperReport;
18. import net.sf.jasperreports.engine.util.JRLoader;
19.
20. public class GenerateReport {
21. public static void main(String[] args) {
22. try {
23. sql4Report();
24. } catch (JRException e) {
25. e.printStackTrace();
26. } catch (SQLException e) {
27. e.printStackTrace();
28. } finally {
29. System.out.print( "finish" );
30. }
31. }
32.
33. public static void parameter4Report ()
34. throws SQLException, JRException {
35. //report parameter
36. HashMap parameter =
37. new HashMap();
38. parameter.put( "master_location_id", new BigDecimal(22) );
39.
40. Connection con = getConnection();
41. JasperReport jasperReport =
42. JasperCompileManager.compileReport("reports/Location.jrxml");
43. JasperPrint jasperPrint =
44. JasperFillManager.fillReport( jasperReport, parameter, con );
45.
46. JasperExportManager.exportReportToPdfFile(
47. jasperPrint, "reports/location_parameter4Report.pdf");
48. }
49.
50. public static void sql4Report () throws SQLException, JRException {
51. //create the ResultSet
52. Connection con = getConnection();
53. PreparedStatement statement =
54. con.prepareStatement(
55. "select * from loc_location "
56. + "where location_type_cd = 'ROOM' "
57. + "order by location_type_cd"
58. );
59. ResultSet resultSet = statement.executeQuery();
60.
61. JRResultSetDataSource result =
62. new JRResultSetDataSource( resultSet );
63. JasperReport jasperReport =
64. JasperCompileManager.compileReport("reports/Location.jrxml");
65. JasperPrint jasperPrint =
66. JasperFillManager.fillReport(
67. jasperReport, new HashMap(), result
68. );
69.
70. JasperExportManager.exportReportToPdfFile(
71. jasperPrint, "reports/location_sql4Report.pdf"
72. );
73. }
74.
75. public static void jasper4Report ()
76. throws SQLException, JRException {
77. //create the ResultSet
78. Connection con = getConnection();
79. PreparedStatement statement =
80. con.prepareStatement(
81. "select * from loc_location "
82. + "where location_type_cd = 'ROOM' "
83. + "order by location_type_cd"
84. );
85. ResultSet resultSet = statement.executeQuery();
86.
87. JRResultSetDataSource result =
88. new JRResultSetDataSource( resultSet );
89. //modify
90. JasperReport jasperReport =
91. (JasperReport) JRLoader.loadObject(
92. "reports/Location.jasper"
93. );
94. JasperPrint jasperPrint =
95. JasperFillManager.fillReport(
96. jasperReport, new HashMap(), result
97. );
98.
99. JasperExportManager.exportReportToPdfFile(
100. jasperPrint, "reports/location_jasper4Report.pdf"
101. );
102. }
103.
104. public static void xls4Report () throws SQLException, JRException {
105. // create the ResultSet
106. Connection con = getConnection();
107. PreparedStatement statement =
108. con.prepareStatement(
109. "select * from loc_location "
110. + "where location_type_cd = 'ROOM' "
111. + "order by location_type_cd"
112. );
113. ResultSet resultSet = statement.executeQuery();
114.
115.
116. JRResultSetDataSource result =
117. new JRResultSetDataSource( resultSet );
118. // create JasperReport from .jasper
119. JasperReport jasperReport =
120. (JasperReport) JRLoader.loadObject("reports/Location.jasper");
121. JasperPrint jasperPrint =
122. JasperFillManager.fillReport( jasperReport, new HashMap(), result );
123.
124. // JasperExportManager.exportReportToPdfFile( jasperPrint, "reports/location_xls4Report.xls");
125.
126. JRXlsExporter xlsExporter = new JRXlsExporter();
127. xlsExporter.setParameter( JRExporterParameter.JASPER_PRINT, jasperPrint );
128. xlsExporter.setParameter( JRExporterParameter.OUTPUT_FILE, new File("reports/location_xls4Report.xls") );
129. xlsExporter.exportReport();
130. }
131.
132. private static Connection getConnection () throws SQLException {
133. DriverManager.registerDriver(
134. new oracle.jdbc.driver.OracleDriver()
135. );
136. return DriverManager.getConnection( url, user, pw );
137. }
138.
139. private static String url = "jdbc:oracle:thin:@localhost:1521:db";
140. private static String user = "report";
141. private static String pw = "report";
142. }

ERP iReport使用javabean做数据源需要四个步骤

iReport使用javabean做数据源需要四个步骤

一、建立一个javabean,这是一个普通的bean:


/**//*
* PersonBean.java
*
* Created on 8 luglio 2004, 1.41
*/
package it.businesslogic.ireport.examples.beans;
/** *//**
*
* @author Administrator
*/
public class PersonBean ...{
private String firstName;
private String lastName;
private HobbyBean[] hobbies;
private AddressBean address;
/** *//** Creates a new instance of PersonBean */
public PersonBean() ...{
this(null);
}
public PersonBean(String name) ...{
this.setFirstName( name );
hobbies = new HobbyBean[0];
}
/** *//**
* Getter for property firstName.
* @return Value of property firstName.
*/
public java.lang.String getFirstName() ...{
return firstName;
}
/** *//**
* Setter for property firstName.
* @param firstName New value of property firstName.
*/
public void setFirstName(java.lang.String firstName) ...{
this.firstName = firstName;
}
/** *//**
* Getter for property lastName.
* @return Value of property lastName.
*/
public java.lang.String getLastName() ...{
return lastName;
}
/** *//**
* Setter for property lastName.
* @param lastName New value of property lastName.
*/
public void setLastName(java.lang.String lastName) ...{
this.lastName = lastName;
}
/** *//**
* Getter for property hobbies.
* @return Value of property hobbies.
*/
public it.businesslogic.ireport.examples.beans.HobbyBean[] getHobbies() ...{
return this.hobbies;
}
/** *//**
* Setter for property hobbies.
* @param hobbies New value of property hobbies.
*/
public void setHobbies(it.businesslogic.ireport.examples.beans.HobbyBean[] hobbies) ...{
this.hobbies = hobbies;
}
/** *//**
* Getter for property address.
* @return Value of property address.
*/
public it.businesslogic.ireport.examples.beans.AddressBean getAddress() ...{
return address;
}
/** *//**
* Setter for property address.
* @param address New value of property address.
*/
public void setAddress(it.businesslogic.ireport.examples.beans.AddressBean address) ...{
this.address = address;
}
}


二 实现JRDataSourceProvider接口
实现JRDataSourceProvider接口最好的办法是继承JRAbstractBeanDataSourceProvider类:


import net.sf.jasperreports.engine.*;
import net.sf.jasperreports.engine.data.*;
import it.businesslogic.ireport.examples.beans.*;
import java.util.*;
public class PersonBeansDataSource extends JRAbstractBeanDataSourceProvider ...{
public PersonBeansDataSource() ...{
super(PersonBean.class);
}
public JRDataSource create(JasperReport report) throws JRException ...{
ArrayList list = new ArrayList();
/**/
/*这里查询数据库或其他途经,把数据包装到bean中
*把bean压入list中
*
*/
return new JRBeanCollectionDataSource(list);
}
public void dispose(JRDataSource dataSource) throws JRException ...{
// nothing to do
}
}

三、打开ireport 5.0 ,选择资料来源——〉连接/资料来源——〉new——〉type of connection/datasource选项选择JRDataSourceProvider,——〉填入名称和class——〉save——〉完成



四、在报表中 点击 资料来源——〉报表查询——〉选择Use DataSource Provider选项卡——〉点击Get fields from datasource 得到bean中定义的属性为 field

ERP iReport

Jasper Custom Data Source
Asked by Maciek1983 in Java Programming Language,
New to Java Programming
Tags: jasper, custom, datasource, data, source
I'm a newbie to programming and I'm trying to set up a custom data source for a Jasper Report and I'm having 2 problems.:

1. PrintVendorParametersBean

public class PrintVendorLabelsParameterBean
{

public String vendorName;
public String vendorAddress;

public printVendorLabelsParameterBean(String nm,String addr)
{
this.vendorName = nm;
this.vendorAddress = addr;
}
public String getVendorAddress()
{
return vendorAddress;
}

public void setVendorAddress(String vendorAddress)
{
this.vendorAddress = vendorAddress;
}
public String getVendorName()
{
return vendorName;
}
public void setVendorName(String vendorName)
{
this.vendorName = vendorName;
}
}

2. printVendorDataSource
public class printVendorDataSource implements JRDataSource {

// hard coded, needs to use a list later, just print one Bean for now
private int counter=0;
private ArrayList list = new ArrayList();

public printVendorDataSource (ArrayList l) {
this.list = l;
}

public Object getFieldValue(JRField jrField) throws JRException {
String fieldName = jrField.getName();
Object value = "";

if(fieldName.equals("vendorName"))
{ printVendorLabelsParameterBean pvb = (printVendorLabelsParameterBean)list.get(counter);
value = pvb.getVendorName();
}
return value;
}

public boolean next() throws JRException {
counter++;
if(counter>list.size())
return false;

return true;
}
}

2. printVendorLabelsDSProvider


public class printVendorLabelsDSProviderextends JRAbstractBeanDataSourceProvider
{
public WiObjectList objlist = null;

public printVendorLabelsDSProvider(WiObjectList obj) {
super(printVendorLabelsParameterBean.class);
objlist = obj;
}

public JRDataSource create(JasperReport report) throws JRException {
ArrayList list = new ArrayList();

try
{
boolean more = objlist.open();
while(more)
{
list.add(new printVendorLabelsParameterBean(objlist.getFieldValue("vendor_name"),objlist.getFieldValue("vendor_name")));
more = objlist.next();
}
}
catch(Exception e)
{

}
return new printVendorDataSource(list);
}

public void dispose(JRDataSource dataSource) throws JRException {
// nothing to dispose
}


}

4. printVendorLabelsService

public class printVendorLabelsService
{
public void getReport(WiSession ses, WiObjectList objList,PrintWriter out)
{
printVendorLabelsBean jrp = new printVendorLabelsBean(objList);
HashMap reportParams = null;


File rptFile = null;
FileInputStream fin = null;
try
{
rptFile = new File(System.getProperty("webapp.root")+ "glap\\reports\\printVendorLabels.jasper");

JasperReport htmlReport = (JasperReport) JRLoader.loadObject(rptFile.getPath());
JasperPrint htmlPrint = null;
htmlPrint = JasperFillManager.fillReport(htmlReport,reportParams ,jrp.create(htmlReport));
JRHtmlExporter exporter = new JRHtmlExporter();

// set exporter input file and out stream
exporter.setParameter(JRExporterParameter.JASPER_PRINT, htmlPrint);
exporter.setParameter(JRExporterParameter.OUTPUT_WRITER, out);
exporter.setParameter(JRHtmlExporterParameter.BETWEEN_PAGES_HTML, "
");
exporter.setParameter(JRHtmlExporterParameter.IS_WRAP_BREAK_WORD, Boolean.TRUE);
exporter.setParameter(JRHtmlExporterParameter.IS_USING_IMAGES_TO_ALIGN, Boolean.FALSE);

exporter.setParameter(JRHtmlExporterParameter.SIZE_UNIT, JRHtmlExporterParameter.SIZE_UNIT_PIXEL);
exporter.exportReport();
}
catch(Exception ex)
{
}

....nothing else relvant after

ERP iReport

Jasper Custom Data Source
Asked by Maciek1983 in Java Programming Language,
New to Java Programming
Tags: jasper, custom, datasource, data, source
I'm a newbie to programming and I'm trying to set up a custom data source for a Jasper Report and I'm having 2 problems.:

1. PrintVendorParametersBean

public class PrintVendorLabelsParameterBean
{

public String vendorName;
public String vendorAddress;

public printVendorLabelsParameterBean(String nm,String addr)
{
this.vendorName = nm;
this.vendorAddress = addr;
}
public String getVendorAddress()
{
return vendorAddress;
}

public void setVendorAddress(String vendorAddress)
{
this.vendorAddress = vendorAddress;
}
public String getVendorName()
{
return vendorName;
}
public void setVendorName(String vendorName)
{
this.vendorName = vendorName;
}
}

2. printVendorDataSource
public class printVendorDataSource implements JRDataSource {

// hard coded, needs to use a list later, just print one Bean for now
private int counter=0;
private ArrayList list = new ArrayList();

public printVendorDataSource (ArrayList l) {
this.list = l;
}

public Object getFieldValue(JRField jrField) throws JRException {
String fieldName = jrField.getName();
Object value = "";

if(fieldName.equals("vendorName"))
{ printVendorLabelsParameterBean pvb = (printVendorLabelsParameterBean)list.get(counter);
value = pvb.getVendorName();
}
return value;
}

public boolean next() throws JRException {
counter++;
if(counter>list.size())
return false;

return true;
}
}

2. printVendorLabelsDSProvider


public class printVendorLabelsDSProviderextends JRAbstractBeanDataSourceProvider
{
public WiObjectList objlist = null;

public printVendorLabelsDSProvider(WiObjectList obj) {
super(printVendorLabelsParameterBean.class);
objlist = obj;
}

public JRDataSource create(JasperReport report) throws JRException {
ArrayList list = new ArrayList();

try
{
boolean more = objlist.open();
while(more)
{
list.add(new printVendorLabelsParameterBean(objlist.getFieldValue("vendor_name"),objlist.getFieldValue("vendor_name")));
more = objlist.next();
}
}
catch(Exception e)
{

}
return new printVendorDataSource(list);
}

public void dispose(JRDataSource dataSource) throws JRException {
// nothing to dispose
}


}

4. printVendorLabelsService

public class printVendorLabelsService
{
public void getReport(WiSession ses, WiObjectList objList,PrintWriter out)
{
printVendorLabelsBean jrp = new printVendorLabelsBean(objList);
HashMap reportParams = null;


File rptFile = null;
FileInputStream fin = null;
try
{
rptFile = new File(System.getProperty("webapp.root")+ "glap\\reports\\printVendorLabels.jasper");

JasperReport htmlReport = (JasperReport) JRLoader.loadObject(rptFile.getPath());
JasperPrint htmlPrint = null;
htmlPrint = JasperFillManager.fillReport(htmlReport,reportParams ,jrp.create(htmlReport));
JRHtmlExporter exporter = new JRHtmlExporter();

// set exporter input file and out stream
exporter.setParameter(JRExporterParameter.JASPER_PRINT, htmlPrint);
exporter.setParameter(JRExporterParameter.OUTPUT_WRITER, out);
exporter.setParameter(JRHtmlExporterParameter.BETWEEN_PAGES_HTML, "
");
exporter.setParameter(JRHtmlExporterParameter.IS_WRAP_BREAK_WORD, Boolean.TRUE);
exporter.setParameter(JRHtmlExporterParameter.IS_USING_IMAGES_TO_ALIGN, Boolean.FALSE);

exporter.setParameter(JRHtmlExporterParameter.SIZE_UNIT, JRHtmlExporterParameter.SIZE_UNIT_PIXEL);
exporter.exportReport();
}
catch(Exception ex)
{
}

....nothing else relvant after

2010年2月21日 星期日

ERP MES 要看你是董事會還是總經理(執行長)

[贴图]对于生产制造企业,是先上ERP还是先上MES?可否并行呢?

对于中小型生产制造企业,是先上ERP还是先上MES?可否并行呢?

请大家不吝指教。

ERP 的重點在 企業資源的績效評核
MES 的重點在 企業資源的有效提升
董事會關心的是經營結果
是否達成預算
付給總經理(執行長)薪資與獎金是否值得
是否需要換總經理(執行長) ...

MES 是總經理(執行長)的提升績效工具
ERP 是監控評核總經理(執行長)的工具
...
到底是先買馬表測成績還是買訓練器材提升成績
...
要看你是董事會還是總經理(執行長)

我是 ADempiere/Compiere
技術轉移顧問開放原碼 MDA ERP/MES 平台

2010年2月20日 星期六

ERP 科技大學 ˇ教到哪裡吃比較好吃 一輩子好嗎??

ERP 科技大學 ˇ教到哪裡吃比較好吃 這樣學生的一輩子淒慘好嗎?

ERP 科技大學 ˇ教別人的系統如何用 這樣學生的一輩子淒慘好嗎?

ERP 科技大學 ˇ教別人的汽車如何用 這樣學生的一輩子淒慘好嗎?

還有比賽

??


不是應該比賽料理出一樣好吃的菜色

不是應該比賽設計出一樣功能的系統

不是應該比賽設計出一樣傑出的汽車

>>>

南台科技大學資管系勇奪
「2010第三屆虎門盃SAP Business One ERP競賽」第一名!!

由南台科技大學資訊管理系吳昭儀老師指導的歐尚鼎、劉家銘、李心瑜與梁惠茹等同學,於日前參加中華企業資源規劃學會、虎門科技股份有限公司舉辦的「2010第三屆虎門盃SAP Business One ERP競賽」。南台科大以作品「營建業專案式建案管理」榮獲全國第一名。

此次競賽目的為學生所知道課本上的企業e化知識和業界SAP Business One ERP系統相結合,而在知識和實務經驗結合的同時,又能展現個案的產業特色。由學會舉辦「虎門盃 SAP Business One ERP競賽」,競賽隊伍將完美地結合專業的技術與知識,並從個案探討中充分展現產業特色,是一年一度不容錯過的精采賽事。

2.jpg

得獎作品「營建業專案式建案管理」,以信美建設為例,它是一家小型建設公司,目前所面臨的經營困境,在人力不能大幅擴充的現況下,必須藉由資訊科技來協助解決以提昇經營效率。經本隊訪談並分析後,歸納為以下兩項待解決重點:
1. 目前所缺乏的是即時且整合性的資訊,以及所據以匯製產生的管理性報表。對此,企業資源規劃(ERP)系統即是一個具備所需解決能力的適當解決方案,包括銷售、採購、工程進行到財務及成本帳結算等流程。

2. 建築案場管理是屬於典型的專案式進行模式。因此,解決方案中還必須具有專案式的控管機制,方能符合建築業的特性。

南台科大校長戴謙表示,南台科大參賽團隊不僅在全國大專校院初賽20幾個隊伍中,脫穎而出進入8強決賽。在決賽過程中,以簡潔有力方式介紹作品「營建業專案式建案管理」,讓評審們了解此作品的設計理念並留下深刻印象。

南台科大資管系黃仁鵬主任表示,SAP為世界上最大的商業應用、企業資源規劃 (ERP)解決方案和獨立軟體的供應商,在全球企業應用軟體的市場佔有率高達三成以上。目前大廠多以使用SAP的ERP系統,資管系推動ERP系統不餘遺力之下,現在也有了相當不錯的成績表現。

SAP Business One 是SAP專門針對成長型企業設計的產品,它提供直觀並能快速實施的解決方案,滿足企業標準的業務需求以及持續發展的條件,幫助此類企業解決管理問題。本屆競賽目的在於鼓勵大專院校學生及研究生盡情發揮創意,透過SAP Business One系統與產業需求結合,為產業電子化帶來新的營運模式。

ERP 教書的決定被教的成績,不來聽課及格才厲害

ERP

教書的決定被教的成績, 真是不要臉的人!!

應該到另一個學校去參加考試

不來聽課及格才厲害

沒人聽課你沒學生教

真是悲哀
>>>>>>>>>>>>>>>>>>>>>>>>>>
推動以IC卡取代學生識別證,
達到一卡多用途、一卡走遍校園,
推動門禁系統、出席簽到、借書卡、
電子錢交易、成績全自動繳費系統,
也要和台北悠遊卡結合,不僅能儲值,
還能持悠遊卡免費搭台中捷運公車。

上課以唱名點名的方式落伍了,
對xx的科技化點名,
中部其他大學依系所不同方式互異,
有的請助教、工讀生人工點名,或設簽到簿,
有教授則在學期中無預期點名五次,
學生不知道哪五堂課要點名,
不想被當,就乖乖來上課。

ERP SAP MM Automatic Account Determination

Source::http://sapdup.peteandmegan.com/?cat=5

SAP MM Automatic Account Determination

Sometimes I wonder how many implementations it would take to get the Automatic Account Determination process down-pat.

Every consultant I’ve dealt with has had to brush up on the account determination process before implementing it, no matter their experience level.

So, for my sake, and yours, here’s a simple (as much as it can be) explanation of what Automatic Account Determination is, what it does, and how to do it.
Why do I need Automatic Account Determination?

Every time a transaction with financial implications is run, postings must be made to financial accounts. I’m a logistics consultant, so to be honest, I don’t care. But it has to happen, so since this is an integration point between us and FI, unless you can make the FI consultant do it, we have to fight through it.

We could let the user enter the GL account each time we post an invoice or goods receipt, but SAP is supposed to be a productivity tool, so that’s not really acceptable.

So, the idea is that the system will determine (based on our config) what account to post to depending on a number of factors, namely; company code, valuation area (plant vs company code), material / material type, transaction or business event and movement type.
So, with five variables, the determination system must be pretty complex?

Yes. When you come to understand the way SAP have done it, it is an elegant solution, but it is pretty damn complex.

Before you begin, sit down with the FI consultant, find out what accounts there are and in a business sense, how and when each of the accounts should be posted to. Discuss all five of the categories above. With this info set in concrete in front of you, you can begin the SAP config.

Here’s the lowdown, try and stay with me.

Essentially all that is happening is that SAP are allowing us to maintain a record of “if x and y happen, then use account z” and “if a and b occur then use account q”.

I can just imagine the conversation many years ago in Germany (translated for your convenience):

“Ok, we need a table of possible outcomes for account determination.”

“That’s faaarrr too easy. Let’s break it into fifty different tables, come up with many interchangeable names for the same thing, and hide the tables beneath several different, unimaginable directory paths.”
Configuration Steps

First up, since we have to do something first, let’s specify our valuation control. This is done via IMG > Materials Management > Valuation and Account Assignment > Account Determination > Account Determination Without Wizard > Define Valuation Control.

All that we’re doing here is specifying whether the system should consider the valuation grouping code in it’s determination procedures.

“What’s the valuation grouping code?” I hear you asking?

The valuation grouping code (vgc) is a collection of valuation areas that will have the same account determination. Since a valuation area can be a company code or plant, we can say that a vgc represents a group of plants or company codes that have the same account determination.

If you don’t use the valuation grouping code, you’ll have to set up account determination for each plant or company code in SAP.

If you’re using the vgc, then jump into “group together valuation areas” and assign your company codes or plant a code (any code). They should be somewhere in the list automatically, all you should need to do is give them a code.

The next step is to manage different account determination per material type. This is where it can get complicated if you let it.

The valuation class is linked to an account category reference. The account category reference (acr) is an artificial code which allows flexibility in linking material types with valuation classes.

“Huh?” I hear you asking. Let’s consider the alternatives.

We could relate the GL account directly to the material type. This would be easy to setup for a few material types, but would take a huge amount of time for many material types, and would be hard to understand if changes needed to be made.

We could use the valuation class, assign the GL account to it, and then assign valuation classes to material types. This is better, since we could for instance have a “Raw Materials” vc and a “Finished Materials” vc and then simply link all the various material types under each category to the valuation class. This would make updates and initial loads easier, but there is still one thing missing, a material type can only be part of one valuation class and can only post to one account.

However, in the real world, a material type may post to different accounts depending on things other than just the material type, such as plant, movement type or indeed any of the factors above.

So, we have an account category reference which is linked to a material type. This acr is then linked with a valuation class and the GL account is linked to the valuation class. So a material type can be linked to one or more valuation classes (and hence GL Accounts) and in turn, a valuation class can be linked to multiple material types (enabling ease of understanding and updates).

Now that you (hopefully) understand that, the actual updates are pretty simple.

Go to transaction: IMG > Materials Management > Valuation and Account Assignment > Account Determination > Account Determination Without Wizard > Define Valuation Classes and begin by defining your valuation classes. Then define your account category references and go back into your valuation classes and assign them (or you could do the acr’s first). Then go into your material types and assign your acr’s to your material types and done! For the moment.

At this point we should consider another factor, the actual business event that is occurring and it’s effect on account determination. This is another area where you have to try and see through the impenetrable fog of terminology.

Each time “something” occurs in the system it produces a “key” for each of the postings that need to be made (i.e. debit and credit). This “key” is entered in our account determination procedure so that postings for credit and debit go to different accounts. Simple aye?

Well when (as far as I understand) the “something” can be called ‘transaction (key)’ or ‘event (key)’ and the “key” can be called ‘value string’, ‘posting rule’ or ‘posting string for values’ and the column header in SAP for the “key” says “Trans”. Fun, fun, fun.

The combinations of movement type and “keys” and how they are determined are all internally programmed by SAP, so we don’t really care. What we do care about is the account modifier or ‘account grouping code’.

This is the topic I spent the most time on, and I’m still not completely clear, so don’t feel bad if you’re confused.

The account grouping code (aka account modification code, modifier or (in SAP) general modifier) is a three character code (which rather oddly has no link with the posting strings (”key”)) which we use to break account determination down by movement type.

For example, by default in SAP, the system says for movement type 101 and posting key PRD there is no modification. So the account determination is not different based on movement type. However, I can enter a code (e.g. AAA) against movement type 101 and posting key PRD and code BBB against movement type 102 and PRD.

Then in ‘Configure Automatic Postings’ when we go into posting key PRD, we will make entries for ‘general modifier’ AAA, account 100000 and BBB of 100001 (there will also need to be an entry for a “blank” modifier which should cover all the other movement types).

So, make sense? Hopefully.

Now you need to go through and for each posting key that we’re concerned with, record each of the defining factors mentioned above (you don’t need to enter them if you’re not using them) and enter a GL account for each permutation.

You should now find that your account determination is working. I wouldn’t put any money on that promise. My hope is that having read this guide, you’re a little bit closer to having your account determination working, and that in conjunction with a number of other resources you’ll get there eventually.



PS: I will be updating this article periodically, and would appreciate your constructive criticism by commenting below.

ERP SAP MM Automatic Account Determination

ADempiere/Compiere 的對應方式該學學 SAP
簡單設定又有彈性

用廠商集合碼對應 會計科目
用料品類別碼對應 會計科目

用廠商碼對應 會計科目
用料品碼對應 會計科目

設了一大堆
只用 DocBaseType 區分
又無法區分 MovementType

DocBaseType 又太單純太可笑

以下是由 SAP 物流(MM) 顧問寫的
SAP 的顧問普遍是愚笨且無知
(對財務會計與成本會計 FI/CO)
細膩分工大家有飯吃
顧問多人作業更顯其偉大與複雜
就像大甲媽祖的眾多信徒苦力付出彰顯其神威顯赫

SAP MM Automatic Account Determination

Sometimes I wonder how many implementations it would take to get the Automatic Account Determination process down-pat.

完全掌握, 彻底了解, 对自動會計科目對應熟悉得可一字不漏的说出;

Every consultant I’ve dealt with has had to brush up on the account determination process before implementing it,
no matter their experience level.

So, for my sake, and yours,
here’s a simple
(as much as it can be)
explanation of what Automatic Account Determination is,
what it does, and how to do it.
Why do I need Automatic Account Determination?

Every time a transaction with financial implications is run,
postings must be made to financial accounts.
I’m a logistics consultant, so to be honest,
I don’t care. But it has to happen,
so since this is an integration point between us and FI,
unless you can make the FI consultant do it,
we have to fight through it.

以下就是 SAP 有一些很笨顧問 不懂 ERP的精隨講的鬼話
商人無祖國
企業無國界
哪來本位幣
更不能只做一套帳
一個交易事件要立多套帳
國際佈局下的財會人員都由
當地總經理或財務經理招聘
ERP 就是要全球佈局下要有
一致性的財務會計科目歸屬
不會因為
不同會計人員立不同會計科目
不同會計人員用不同成本計算
追求全球佈局下可統一的評估標準

We could let the user enter the GL account each time we post an invoice or goods receipt, but SAP is supposed to be a productivity tool,
so that’s not really acceptable.

So, the idea is that the system will determine (based on our config)
what account to post to depending on a number of factors, namely;
company code,
valuation area (plant vs company code),
material / material type,
transaction or business event and movement type.
So, with five variables,
the determination system must be pretty complex?

Yes. When you come to understand the way SAP have done it,
it is an elegant solution, but it is pretty damn complex.

Before you begin, sit down with the FI consultant,
find out what accounts there are and in a business sense,
how and when each of the accounts should be posted to.
Discuss all five of the categories above.
With this info set in concrete in front of you,
you can begin the SAP config.

Here’s the lowdown, try and stay with me.

Essentially all that is happening is that SAP are allowing us to maintain a record of “if x and y happen, then use account z” and “if a and b occur then use account q”.

I can just imagine the conversation many years ago in Germany (translated for your convenience):

“Ok, we need a table of possible outcomes for account determination.”

“That’s faaarrr too easy. Let’s break it into fifty different tables, come up with many interchangeable names for the same thing, and hide the tables beneath several different, unimaginable directory paths.”
Configuration Steps

First up, since we have to do something first, let’s specify our valuation control. This is done via IMG > Materials Management > Valuation and Account Assignment > Account Determination > Account Determination Without Wizard > Define Valuation Control.

All that we’re doing here is specifying whether the system should consider the valuation grouping code in it’s determination procedures.

評價集合碼(成本計算方式代碼)

“What’s the valuation grouping code?” I hear you asking?

可以將不同的評價區域歸屬於同一評價集合碼,,會反映出相同會計科目與成本

The valuation grouping code (vgc) is a collection of valuation areas that will have the same account determination.

評價區域的範圍為可設定一個公司或單一廠區
設為一個公司時全公司各廠區成本加權平均
設為一個廠區時各廠區獨立分離計算成本加權平均

Since a valuation area can be a company code or plant, we can say that a vgc represents a group of plants or company codes that have the same account determination.

如果沒有設定使用評價集合碼(成本計算方式代碼)
就需設定是依據廠區或公司計算成本加權平均

If you don’t use the valuation grouping code, you’ll have to set up account determination for each plant or company code in SAP.

如果使用設定使用評價集合碼(成本計算方式代碼)
就不需要用評價區域去對應公司或工廠

If you’re using the vgc, then jump into “group together valuation areas” and assign your company codes or plant a code (any code).
They should be somewhere in the list automatically, all you should need to do is give them a code.

接下來是評價分類對應料品類別

The next step is to manage different account determination per material type.
This is where it can get complicated if you let it.

評價分類對應會計類別

The valuation class is linked to an account category reference.
The account category reference (acr) is an artificial code which allows flexibility in linking material types with valuation classes.

“Huh?” I hear you asking. Let’s consider the alternatives.

We could relate the GL account directly to the material type.
This would be easy to setup for a few material types, but would take a huge amount of time for many material types, and would be hard to understand if changes needed to be made.

We could use the valuation class, assign the GL account to it,
and then assign valuation classes to material types.
This is better, since we could for instance have a
“Raw Materials” vc and a
“Finished Materials” vc and then simply link all the various material types under each category to the valuation class.

This would make updates and initial loads easier,
but there is still one thing missing,
a material type can only be part of one valuation class and can only post to one account.

However, in the real world,
a material type may post to different accounts depending on things other than just the material type, such as plant,
movement type or indeed any of the factors above.

So, we have an account category reference which is linked to a material type.
This acr is then linked with a valuation class and the GL account is linked to the valuation class.
So a material type can be linked to one or more valuation classes
(and hence GL Accounts) and in turn,
a valuation class can be linked to multiple material types
(enabling ease of understanding and updates).

Now that you (hopefully) understand that, the actual updates are pretty simple.

Go to transaction:
IMG > Materials Management > Valuation and Account Assignment
> Account Determination
> Account Determination Without Wizard
> Define Valuation Classes and begin by defining your valuation classes.

Then define your account category references and go back into your valuation classes and assign them (or you could do the acr’s first).
Then go into your material types and assign your acr’s to your material types and done! For the moment.

At this point we should consider another factor, the actual business event that is occurring and it’s effect on account determination. This is another area where you have to try and see through the impenetrable fog of terminology.

Each time “something” occurs in the system it produces a “key” for each of the postings that need to be made (i.e. debit and credit). This “key” is entered in our account determination procedure so that postings for credit and debit go to different accounts. Simple aye?

Well when (as far as I understand) the “something” can be called ‘transaction (key)’ or ‘event (key)’ and the “key” can be called ‘value string’, ‘posting rule’ or ‘posting string for values’ and the column header in SAP for the “key” says “Trans”. Fun, fun, fun.

The combinations of movement type and “keys” and how they are determined are all internally programmed by SAP, so we don’t really care.
What we do care about is the account modifier or ‘account grouping code’.

This is the topic I spent the most time on, and I’m still not completely clear, so don’t feel bad if you’re confused.

The account grouping code
(aka account modification code, modifier or (in SAP) general modifier)
is a three character code
(which rather oddly has no link with the posting strings (”key”))
which we use to break account determination down by movement type.

假如 過帳碼 PRD (料品) 沒設定 修正碼 (modification)
那麼 過帳碼 PRD 在異動碼 101 / 102 (movement type) 會對應相同會計科目
For example, by default in SAP,
the system says for movement type 101 and posting key PRD there is no modification.
So the account determination is not different based on movement type.

假如 過帳碼 PRD (料品) 有設定 修正碼 (modification)
異動碼 (movement type) 101 修正碼 (modification) 是 AAA
異動碼 (movement type) 102 修正碼 (modification) 是 BBB
那麼 過帳碼 PRD 在異動碼(movement type) 101 / 102 會對應不同會計科目
AAA 會計科目 100000
BBB 會計科目 100001

However,
I can enter a code (e.g. AAA) against movement type 101 and posting key PRD and code BBB against movement type 102 and PRD.

Then in ‘Configure Automatic Postings’ when we go into posting key PRD,
we will make entries for ‘general modifier’ AAA,
account 100000 and BBB of 100001
(there will also need to be an entry for a “blank” modifier which should cover all the other movement types).

So, make sense? Hopefully.

Now you need to go through and for each posting key that we’re concerned with, record each of the defining factors mentioned above
(you don’t need to enter them if you’re not using them)
and enter a GL account for each permutation.

You should now find that your account determination is working.
I wouldn’t put any money on that promise.
My hope is that having read this guide,
you’re a little bit closer to having your account determination working,
and that in conjunction with a number of other resources you’ll get there eventually.



PS: I will be updating this article periodically, and would appreciate your constructive criticism by commenting below.

ERP 选型是成功的开始

选型::
不能調型所以需要選型
那不能調型的 ERP 怎麼稱為 ERP


Source::
http://www.icax.org/article/extech/2009/636.php
选型是成功的开始
作者:Extech 发布时间:2009-09-01 来源:Extech 点击:290
文章來自 MTU开思网

1、前言
宁波东海集团是国内计量仪表大型生产企业及主要出口基地,
集团隶属有水表、煤气表、热量表、定时器、阀门、智能仪表及能源资源管理系统、
电子信息产业等产业子公司,是浙江省新型计量仪表特色产业基地。


由于公司产品种类繁多,
涉及精密机械、自动控制、传感器、通讯和多个学科,
无论是技术管理和生产管理都非常复杂。
为全面实施信息化管理,在2007年初,
我公司决定实施PDM系统作为企业技术创新和管理创新的依托平台,
最终将实现企业技术体系的统一管理。
由于目前市场上主流的PDM系统有十几家,
对于我们这种对PDM并不是很专业的用户来讲,
判断哪个产品更适合我公司的应用的确是非常困难的事,
为此我公司专门成立了以董事长为首的PDM项目选型小组,
并由技术总监担任项目负责人,
负责整个项目的选型。


考虑到市面流行的PDM系统很多,
即有功能强大的国外软件,
又有功能实用的国内系统,
在选型时,
主要是从本身的需求出发来进行选择,
我们认为,不一定选择最好的软件,
但一定要选择最适合我公司应用的系统。


2、企业需求分析和选择供应商

由于我公司并没有十分熟悉PDM系统的技术人员,
为了做好需求分析,
项目组从网上查询了大量技术资料,
并翻阅了有关PDM/PLM的相关书籍,
同时组织项目组成员和技术人员进行讨论,
最终认为,
企业当前的需求主要包括以下几个方面:


一、公司下属10多家工厂,
技术资料管理方面存在很多安全隐患,
资料丢失现象严重;

二、产品研发包含三大学科:结构、电子、软件;
结构件的借用非常普遍,
常见通用件比例达到80%,标准化程度很高;
电子部分使用电子CAD进行设计,
而软件部分采用了各种汇编语言编制产品软件,
基于以上情况,
目前没有一个完整的产品技术资料管理系统,
不同学科之间的技术资料分散保存,
导致发放到生产部门或工厂的技术资料混乱,
而且生产部门在查询技术资料时也非常麻烦,
经常出现错误;

三、由于在各工厂的技术部门主要负责已有产品的变形设计,
没有行之有效的工具帮助工程师快速检索技术资料,
导致不能快速完成符合客户订单要求的技术资料,
拖延了交货周期;


四、
我公司于2003年引进了IFS系统,
但由于物料编码处理上存在一些问题,
导致在IFS系统中物料管理出现很多问题,
特别是在仓储部门、销售部门不能很好的利用编码信息。

究其原因,在于对产成品进行编码时,规则不明晰,
且由于当时IFS系统对编码长度的限制,
物料编码很难清楚的描述一个物料的准确信息;
另外由于在引进IFS系统时,
技术部门没有参与编码工作,
导致技术部门不能提供带有编码信息的物料清单,
所有物料信息传递到生产部门后,
还需要手工将物料编码维护到IFS系统中,
一旦有新物料产生时,
很难保证物料编码的准确性和唯一性,
而且由于编码申请目前是通过手工台帐形式进行管理的,
在管理和登记过程中错误较多。


五、在IFS系统上线时,
所有BOM信息都是通过手工形式录入到IFS系统中的,
这在当时是不小的工作量,
且因采用手工录入的形式,
BOM数据的准确性大打折扣,
典型的错误如一个物料在IFS系统中有两条完全不同的记录。


六、由于本公司产品的特点,
存在着大量按照客户订单要求进行产品配置的情况,
在以前都是由技术人员针对订单要求手工编制一份订单BOM,
即便只是某个微小的变化,
也需要技术人员在EXCEL中维护一份完整的BOM,
然后再导入到IFS系统。
工作量非常巨大且容易出错,
而这些信息其实在设计阶段的很多文件中都由技术人员编制在图纸上了,
因无法实现CAD和IFS系统的集成,
只能是将物料信息重复书写多次。


七、我公司生产的仪表中智能仪表居多,
而智能仪表中的电子部分更改非常快,
电子PCB板中的元器件数量很多,
每次修改,
都需要维护一个更改后的BOM,
并将数据输入到IFS系统,
当出现一天之间更改二、三次的情况时,
第一版的BOM还没有来得及完全导入到IFS系统,
第三版的数据已经过来了,
从而导致效率很低,
数据传递也非常不及时。


八、我公司的全新产品是技术中心研发的,
对于全新产品研发完全是按照项目管理模式来进行研发控制,
由于产品涉及多个学科,
各学科之间的协调工作很难做到非常合理,
另外由于项目周期比较长,除了图纸绘制以外,
还需要开模、做样机、工艺定型、小批生产,
整个项目不仅仅只涉及到技术部门,
还牵扯到其他部门一同完成项目,
对于项目进度的协调和监控非常困难,
我们的产品经理经常是跑来跑去到处救火,
但项目的整体进度还是被拖延。MTU开思网

以上只是我们在内部讨论后列出的几个主要问题,
其实其他问题还有很多,
比如零件族图纸没有很好的处理方法;
更改时只修改了纸介质文件而电脑里面的文件没有修改,
造成研发其他产品借用时出现错误;
或者是某个零件被使用在多个系统中,
而技术人员不了解情况,对其贸然修改,
导致其他产品生产时无法装配等等各种问题。
当然,我们并不是专业的PDM技术人员,
以上问题都是我们在日常管理中碰到的主要问题,
而这些问题也是我们急需解决的。MTU开思网

在确定了公司PDM系统的初步需求之后,
我们开始从市场上查找合适的供应商,
最终确定了三家软件公司作为考察对象:
某国外高端PDM系统、
艾克斯特和国内另一家软件公司,
最初选择供应商考察的主要指标为供应商的规模、
业界中的声誉、行业特色、实施特点、一般价格等。


3、选型过程MTU开思网
3.1、初步考察MTU开思网
在确定了考察对象之后,
我们分别邀请了三家软件商来我公司进行技术交流,
并向我公司项目组成员做了软件产品的PPT介绍,
经过第一次交流后,总体感觉是,
国外高端产品虽然包含了很多功能,
但有些功能我公司并不一定能用的上,
另外此软件商有可能对其代理的产品也并不是很了解,
讲解过程中概念居多,
让人听不明白到底此功能是做什么用的。
另外两家软件商的讲解则更加贴近于企业。
MTU开思网

经过此初步交流后,
我公司决定以后面两家软件商作为重点考察对象,
当然这并不是说国外高端软件不好,
而是感觉在我公司并不是很实用,
且根据各方的市场报价来算,
国外高端软件的费用显然是我公司难以承受的。


3.2、企业调研
经过第一轮筛选后,
我们邀请后面两家软件商对我公司进行企业情况调研,
相比较起来,艾克斯特公司在调研过程中投入精力较多,
其顾问水平也得到了项目组的一致认可,
从一些细节上就可以看出参与调研的顾问对我们这个行业比较了解,
例如对一些专业数据的描述和行业内的通用叫法上可以看出他曾经做过类似的企业。


3.3、方案和技术交流MTU开思网
调研完成之后,我们要求双方提供项目方案书,比较方案书,
艾克斯特公司显的更加专业一些,
且提交方案书后专门向我公司项目组进行了详细的讲解和交流,
然后针对交流过程中我方提出的问题对方案书进行修改,
这样反复了三次,其方案书也修改了三版,
为了保证方案书中技术路线的正确性和可行性,
软件商还专门和IFS 公司的顾问针对ERP集成接口进行了技术交流。
MTU开思网

当方案阶段结束后,
两家软件商又根据企业实际情况进行了有针对性的产品演示和技术交流,
在产品演示过程中,
艾克斯特公司还专门将我公司的一部分样例数据做到系统中,
让我们感觉非常亲切。MTU开思网

3.4、参观典型用户MTU开思网
当选型走到这一步时,
其实我们公司项目的意见已经基本一致,
那就是基本可以确定选择艾克斯特作为我们的合作伙伴,
当然为了保证选型结果的准确性,
我们还是要求艾克斯特公司带领我公司项目组成员去参观使用他们产品的典型用户。
MTU开思网

针对这个要求,艾克斯特公司向我们提供了二家有代表性的用户,
一个是国内某大型汽车零配件企业,另一个是某电子行业企业。
最初我们对艾克斯特公司提供的典型用户也是心存疑虑,
因为毕竟不是属于我们行业的用户,
那个电子行业企业和我们还类似一些。
但通过参观这两家用户之后,我们取得了不少的收获,
在参考汽车零配件企业时,
我们看到了艾克斯特产品是如何满足汽配行业对项目管理的要求的,
此汽配企业的特点在某些方面和我公司是很类似的,
其产品研发过程也需要经过设计、工艺、模具制造、模具试验、样机、小批、量产等环节,
而且也是按照项目管理模式运行的,在这一点上,
艾克斯特公司的产品能够在此企业应用,
那么同样也能在我公司应用;在另外一家电子行业的典型客户参观时,
我们看到了艾克斯特公司管理的企业的机电软一体化的数据,
并且实现了电子类CAD和PDM系统的集成,
能够直接从电子类CAD中将元器件信息导出并传递给ERP系统,
而这些功能正是我们迫切需要的,
两家公司对艾克斯特公司的产品和实施服务都比较满意;
另外,在参观艾克斯特公司的两家典型用户过程中,
我们在企业的办公室里看到了很完整的项目实施文档……每个项目都有很厚的文档,
记录了每次开会讨论的问题、软件安装情况甚至BUG,这是真正的项目管理,
这些文档让我们项目组对艾克斯特很满意,
和这样的公司合作,成功把握很大。
MTU开思网

3.5、签单MTU开思网
参观完用户后,我们项目经过开会讨论,
决定选用艾克斯特产品,
然后进入商务谈判阶段,
并最终签订了合同。MTU开思网

4、供应商特点总结MTU开思网
经过此项目的一系列过程,
目前笔者对主要参与我公司项目的二家公司的产品有了一定的了解,
对于国外那家公司由于没有进一步的详细接触,
在本章节中不再描述其特点。
那么是什么原因导致我们和艾克斯特公司进行合作呢,
笔者简单的总结了一下,
应该包含以下几个方面:


4.1、公司技术能力
据艾克斯特公司介绍,其全部员工大约为450人,技术人员有210多人,其中:
开发150人,实施60多人。全国共12家分支机构。MTU开思网

在本次项目中,
艾克斯特公司的技术顾问水平得到笔者个人和我公司项目组的认可,
无论是在企业理解、行业经验、方案编制,
还是产品演示、技术交流过程中,
其技术实力都是不错的。


以下资料来源于软件公司网络:MTU开思网
在2004年,艾克斯特入选世界四大会计公司之一的德勤国际会计公司评选的“2004年度亚太地区高科技高成长企业500强”,成为亚太区最有发展潜力的高科技企业。MTU开思网
2006年1月,经过网友投票,艾克斯特获得“中国制造业信息化工程十大优秀供应商”称号。MTU开思网
2006年9月,在IDC公司公布的《关于2005~2010年中国制造业信息化的分析报告》中,
艾克斯特被IDC列为中国制造业信息化十大解决方案提供商,
在国内本土的PLM厂商中位列第一。
MTU开思网

4.2、成功用户数量MTU开思网
据了解,艾克斯特公司成功实施的PDM项目有上千家。
从其网站资料上可以看出其用户涉及汽车汽车零配件、电器成套、电子、机床、家电、锅炉、铁路等多个行业。MTU开思网

4.3、行业经验MTU开思网
在本次项目过程中,艾克斯特公司的技术顾问对智能仪表行业还是比较熟悉的,
能够针对我公司情况提供适合我行业的解决方案
MTU开思网

4.4、CAD集成MTU开思网
针对我公司产品的特殊性,
在产品研发过程中使用到了二、三维CAD,
同时还使用到了电子类CAD,
一个比较好的PDM系统应该能够通过和CAD集成自动读取 CAD文件的中的BOM信息,
从而大大提高PDM系统的使用效率。
与CAD的集成功能是否方便好用,
在某种程度上会影响整个PDM项目实施的成功率。MTU开思网

经过本次选型,我们了解到艾克斯特公司在二维CAD上有专门的二次开发接口,
可以利用此接口实现CAD和PDM系统的双向集成;针对三维CAD,
艾克斯特公司称,
其产品能和目前市场上所有主流的三维CAD进行集成,
据此我们专门向其部分客户进行求证,
了解到其已实现了和UG、Pro-E、 Solidedge、Solidworks软件的成功集成。据了解,
XTPDM产品和三维设计软件也能达到双向集成的效果,
并能实现直接在二、三维CAD 中访问ERP中的基础物料库,
这是其非常独特的一个功能,
按照艾克斯特公司的理论,
实现此功能的主要目的是为了控制数据源头的准确性和优选物料、控制物料种类的效果。
MTU开思网

4.5、编码管理MTU开思网
物料编码在企业信息化的过程中具有举足轻重的作用,
在本文前面需求分析中已经提到本次项目的一个重要目标就是希望能利用此项目对企业的各种编码重新梳理,因此我们对PDM系统中的编码管理方面非常重视:
MTU开思网

据了解,艾克斯特公司提供了一个叫做统一编码的产品,
此产品可集成到CAD、PDM、ERP产品中,
此产品可管理企业信息化过程中的各种编码规则,
并可管理已经申请的物料编码。
MTU开思网

4.6、项目管理MTU开思网
通过本次项目,笔者认识到PDM一般包含数据和文档管理、产品结构与配置管理、零部件分类库管理、计划/项目管理、过程和工作流管理五大功能。前三大功能PDM软件商经过几年的研究和推广,业已成熟;项目和工作流管理是当前PDM关心的热点。MTU开思网

项目管理是在一定的约束条件下,以高效率实现项目目标为目的、以项目经理个人负责制为基础和以项目为独立实体进行经济核算,并按照项目内在的逻辑规律进行有效的计划、组织、协调、控制的系统管理活动。项目管理的核心技术是网络计划技术。MTU开思网

针对于我公司具体情况,一般项目管理会使用在新产品研发的过程中;因此本次选型,项目管理也是我们非常关心的内容:MTU开思网

据了解,XTPDM系统中提供了专门的项目管理模块,包含了项目管理的主要要素,这其中有WBS分解、进度跟踪、资源分配等相关功能,但在成本核算和风险分析等高级功能方面有所欠缺;但仍旧不失为一个比较完整的项目管理功能。MTU开思网

4.7、与ERP系统的集成MTU开思网
随着信息化理论的发展,企业越来越重视信息化产品的整体应用,利用CADCAPPPDMERP系统的集成功能,实现跨部门、跨业务领域不同应用系统的一体化无缝集成,保证企业级数据信息流的畅通性、唯一性、完整性和全程动态共享,并可实现全程动态跟踪与反馈,从而有效指挥并带动企业物流、资金流和伴生信息流的集成与控制管理,为管理者提供及时、可靠、科学的决策支持。针对本次项目,必须要考虑PDM和IFS系统集成的问题:MTU开思网

在XTPDM系统中提供了专门的ERP集成接口,从艾克斯特公司的客户列表可以得知,XTPDM系统应该实现了大部分目前市面上主流ERP系统的集成,所以在ERP系统集成方面,XTPDM系统应该不成问题。MTU开思网

5、选型体会MTU开思网
由于企业的需求、经费和实施规模差异很大,PDM供应商所提供的产品也各有风格,因此如何选择合适的PDM产品,会在很大程度上影响PDM实施的进度和成功概率。在选择PDM产品时,作为客户,我们通常需要考虑以下主要因素: MTU开思网

1.产品的功能 在实施PDM之前,客户已经初步了解企业对PDM各功能模块的需求情况,因此,在选择PDM软件时,我们可根据分析结果选择功能,
按照所需功能的优先级排定软件必备和可选的功能。与此同时,客户集成开发工具的功能将成为客户选择产品的基本条件。值得注意的是,PDM软件面市后需要三年以上的成熟期,
因此客户应尽量选择在PDM市场上处于领先地位的PDM供应商。成熟的产品和较高的市场占有率将获得更多的支持,
例如与其它ERP、CAD系统的接口等。

另外,企业的领导必须清醒地认识到PDM技术不是拿来就能用的工具,
不象其它的应用软件,如CAD、Windows软件等,只要技术人员熟悉软件的一些命令,
就可编程使用。PDM是一门涉及管理领域的技术,它为企业提供了一系列的科学管理工具,实施PDM是对企业动大手术。因此针对不同的企业,按照各自的实际情况,利用PDM提供的管理工具可以创造出各种各样的PDM系统。可以侧重于提供准确的BOM表,创造出适用于系列化生产企业的PDM系统;可以侧重于提供严格的、科学的工作流程管理,创造出适用于复杂产品研制开发的PDM系统;可以侧重于快速响应用户的各项需求,创造出适用于企业项目招标的PDM系统;可以侧重于企业全局信息的集成,创造出适用于企业采用并行工程等各项新技术的PDM系统,等等。这一点在企业引进PDM系统时应特别注意,要充分做好调查和咨询工作。要根据本企业的实际情况和需求分析,选择适合自己企业的PDM系统,要在各项功能上满足企业的要求,不能脱离实际,一味地追求高档和功能齐全。MTU开思网

2.系统的开放性 从PDM系统的发展可以看出,一个优秀的PDM系统,必须具有良好的底层体系结构,能满足异构计算机系统的要求。这样才能保证企业在其不断发展的同时,PDM系统也能随之扩大而不受太多技术因素的制约。PDM系统开放性主要体现在以下几个方面: MTU开思网

(1)持多种硬件平台;(2)支持多种数据库;(3)友好的图形用户界面和多语种支持;(5) 采用先进的技术,如Client/Server、Web/Internet等。 MTU开思网

3.系统集成性 系统的集成性以系统开放性为基础。
系统的集成性主要表现在PDM系统与其它商用系统,
包括MDA、EDA、OA和ERP等系统的集成。
PDM系统必须满足计算机或其它行业的标准,如CORBA、STEP等。
满足这些行业标准意味着PDM软件能更简单、方便地与行业的应用软件或系统集成。
通常情况下,应该优先选择具有现成接口的PDM软件。
如果必须通过客户化来完成集成工作,
用户就必须慎重考虑集成的方式和程度。
集成工作不仅和PDM软件有关,
而且还需要获得其它应用系统供应商的技术支持。

4.供应商服务能力 

在PDM选型的过程中,
很重要的一点,
就是要看供应商是否有实施PDM的技术服务能力,
即技术支持、二次开发和服务的能力。
因为PDM不象其它的应用软件,
不是拿来就能用的,
因此,
在购买之前不仅要很好地了解PDM产品的功能,
还要深入地调查该供应商是否有强大的技术服务队伍?
是否有实施 PDM 系统的能力?
过去在哪些企业作过 PDM 系统的实施?是否有实施PDM的经验?
这些问题都要一一了解清楚,才能下决心购买。
如果某供应商提供的PDM系统功能可以很好地满足本企业的要求,
但是没有强大的技术服务能力,
那么就是再好的产品也不能购买。
对于供应商的发展状况也需要了解,
如果是国外的供应商,
还需要了解其对中国市场的重视程度。
如果某些软件厂商在一段时间以后关门了,
或者国外的厂商为了全球市场的需要,
临时决定关闭中国的办事处,
诸如此类的问题都将给企业带来不可估量的损失。
因此,在选择供应商这个问题上一定要慎重。MTU开思网

5.产品和服务的费用
::
:: 使用的課程免費上課
:: 修改的課程免費上課
::
项目投入的费用问题是企业需要重点考虑的,
因此对软件和服务的费用应该经过多方面的比较和调查。
企业购买 PDM 产品时,
不仅要购买 PDM 产品,
而且还要花费一定的经费买服务,
即给企业提供技术咨询、技术支持、二次开发、培训和实施等服务工作。
这些开销也要占到一定的比例,
这点在预算经费时,一定要把服务的经费规划在内。
如果企业有较强的技术力量,
那么就要仔细计划哪些工作必须由PDM产品的供应商来做,
哪些实施可以在供应商的指导下由自己来做,
这样可以节省部分资金,
又可以尽早锻炼出自己的PDM技术力量,
有利于企业今后PDM系统的正常运行和维护,总之,我们认为,
一个软件再好,如果不能向企业提供很好的实施服务,
企业也不会取得很好的实施效果。
但对于选型来讲,毕竟项目还处于未签订合同状态,
因此考察软件供应商典型用户的实施过程和效果也是非常重要的。

ERP 中國品牌 長安 ERP 河洛實務博士學院院士群

ERP 中國品牌 長安 ERP 河洛實務博士學院院士群

以資本主義手段對抗資本主義
以共產主義開放原碼一生承諾

最極權的民主政府
最凶惡的善心人士::歧視別人的能力::輕忽別人的痛苦

要追上 SAP
要用 DocType 來決定 過帳方式
要用 DocBaseType 來決定 作業類別
要用 AD_UserDefine_Win 來超越 SAP
要用 AD_UserDefine_Tab 來超越 SAP
要用 AD_UserDefine_Field 來超越 SAP

2010年2月19日 星期五

ERP SOA

到底是受訂時要管制,,還是出貨時要管制 ??
出貨單金額超過10萬元
出貨人員打了出貨單後
系統會將它送到營業員的信箱 !!
:: 重點該是送到 : "稽核" 與 "業務會計" 順道通知營業員 你的貨已出了!!!
:: 訂單都接了都已經給承諾交期了!!
:: 難怪會設計出 由 Client Thread 去更新 Server 的 假 SOA - ERP
:: 沒有 MDA 概念 難怪需要 3000 多種 Service !!

工作流(workflow)是一種「事找人」的機制,對落實標準作業程序有幫助。
例如,金額在10萬元以上的出貨單要先讓營業員看過再讓營業主管看過。
若某出貨單金額超過10萬元,
出貨人員打了出貨單後,
系統會將它送到營業員的信箱,
並發簡訊給營業員。
營業員簽核後,
系統繼續送到營業主管的信箱。
營業員和營業主管只要能上Internet就能簽核,
用手機也可以。

ERP SAP FI Check List for Closing

SAP FI
Check List for Closing
SAP FI Check list for year end closing

1 Execute Report for InterCompany Activity & Journal Entries
2 Open posting period for next yr
3 Run Business Area's Assignment report.
4 Review list of recurring journal entries
5 Execute Recurring Entries for A/R, A/P, G/L
6 Process Parked A/R, A/P, G/L accounting documents
7 Final Cutoff for the Maintenance of Fixed Asset- Add Transfer and Retire
8 Run Depreciation in Test Run and post
9 Verify Display Log for Depreciation Test Run
10 Capitalize AUC Assets if needed
11 Enter Payroll Data to SAP
12 Verify Depreciation Balances with GL balances
13 Post Depreciation
14 Execute Asset History Report, and retire assets if needed
15 Adjust specific depreciation areas if necessary
16 Reconcile AM subledger with GL
17 Check Bank Data
18 Review AR Open Items
19 Review AP Open Items
20 Execute Pending Invoices
21 Clear Open Item for GRIR, freight
22 Reconciliation of Financial Documents and transactional figures
23 Open new CO Posting Period
24 Compare current (cost estimates) with last current price (Moving Avg)
25 Update current cost price to material master price field.
26 Process Freight charges, Match SD freight to actual
27 Review Internal Order Postings
28 Settle All Orders
29 Verify All Post Goods Issue have been Invoiced (Billing Due List)
30 Review SD Billng Doc from prior mth that have not yet been released to accounting
31 Reconciliation of MM movements in Transit Intra-SAP to NonSAP
32 Reconcile PI Inventory with SAP
33 Perform Manual Adjustment if needed
34 Verify balance of the GR/IR account
35 Post Accruals and Deferrals
36 Clearing of Cancelled Documents
37 Check Profitability Segment Adjustment
38 Aging Report-Reconcile GL balances with subledger balances AP
39 Check the check run numbers
40 Bank reconciliation Data
41 Enter Tax Journal Entry
42 Reconcile GL balances with subledger balances AR/MM/AP
43 Display Balance Sheet Adjustments
44 Post Balance Sheet Adjustments
45 Post Foreign Currency Valuation (foreign exchange)
46 Check generic cost centers for posting with wrong accounts
47 Correct wrong postings on generic cost centers
48 Check Validation dates for Cost Centers, Cost Elements, CO area
49 Check COGI--for both month end and year end
50 Doubtful receiviables
51 Verify In-transist Inventory
52 Reconcile PA to G/L
53 Post Cost Centre Assessments and Distributions
54 Run CO-FI Reconciliation to balance
55 Run BW reports P&L and Balance Sheet
56 Maintain CO yr variant
57 Fiscal Yr Balance carryforward AP/AR/AM
58 Fiscal Yr Balance carryforward CO
59 Fiscal Yr balance carryforward FI
60 Fiscal Yr balance carryforward PCA
61 Set Document number ranges - FI - new year
62 Set Document number ranges AP/AR - new year
63 Generate Financial statement Reports
64 Change Fiscal Year For Assets
65 Year end Closing-- Asset Accounting--final for year end
66 Close CO Posting Period
67 Close Prior A/R Posting Period
68 Close Prior A/P Posting Period
69 Close Prior MM Posting Period
70 Reverse accruals and deferrals for the new month
71 Reconciliation of Financial Documents from old fiscal year and new fiscal year
72 Load Balances, Budget Data for Cost centers, sales
73 Update Retained Earning Account , balance carry fwd

ERP SAP SD

SAP SD
Accounting Entries
INVOICE GENERATION
Invoices will be generated at the Smelters and stock points.
The accounting entries for the sale of goods despatched will flow from the Sales invoice generated in SAP Sales and Distribution module.

The following entries shall be passed
Customer Account Dr
Revenue Cr
Excise Duty Payable Cr
Sales Tax Payable (local or central) Cr

Note:
As mentioned above in the FI document, which is created in the background, the SD invoice number shall be captured.

However as per the current accounting procedure the accounting entry passed is as follows :-
Customer Account Dr
Revenue Cr
Excise Duty Billed Cr
Sales Tax Payable (local or central) Cr

Excise duty paid a/c Dr
Excise duty payable a/c Cr

EXPORT SALES
There have been very few export transactions in the past. SAP system will be designed to handle export business.

Exports are mainly from the mines and will be handled at the mines, however the documentation part will be taken care at the Head Office. The accounting entry is:
Customer Account Dr
Revenue (Exports) Cr

The realisation of export sales will be directly credited to the bank. The accounting entries will be as follow:
Bank Dr
Customer Cr
Exchange Fluctuation Dr/ Cr

The accounting entries will be:
Rebates/Discounts Dr
Customer Cr

DEBIT MEMOS
Debit Memos shall be issued in case of price difference, sale tax difference and interest on usance period and overdue payments.

The accounting entries for two possible scenarios are as follows:
Price Undercharged:
Customer Account Dr.
Revenue Cr.
Sales tax payable Cr.
Sales tax undercharged
Customer Account Dr.
Sales tax adjustment Cr.

Interest on delayed payments/usance period and other charges
Customer Account Dr.
Interest Others Cr.

In case of HZL a complete retirement or a partial retirement of asset is done.
The system uses the asset retirement date to determine the amount to be charged off for each depreciation area.

The existing accounting policy is to provide depreciation for the full quarter in which the asset is sold/discarded, recommended that the depreciation be provided from the date of acquisition on prorata basis .

Accounting entry for sale of Asset to customers:
Customer Account Dr
Asset Sale Cr
Accumulated Depreciation Dr
Loss on Sale (if applicable) Dr
Asset Sale account Dr
Asset account Cr
Profit on sale (if applicable) Cr

Note:
In case of any Sales Tax /Excise duty applicable for this transaction, SAP will calculate the Sales Tax/Excise Duty based on the Tax Code selected the entry is posted to the GL Account (Sales Tax Payable)

Accounting entry for sale without a customer:
Accumulated Depreciation Dr
Loss on Sale (if applicable) Dr
Asset Sale account Dr
Asset account Cr
Profit on sale (if applicable) Cr

Accounting entry for scrap
Accumulated Depreciation Dr
Loss on Sale of Assets Dr
Asset account Cr

SALE OF SCRAP
The sale of scrap (non-stock) shall be mapped as a direct manual FI entry. The customer will be created as a FI customer. No Logistics module will be involved in the process.

A FI Invoice will be prepared for the sale of scrap with the following entries:
Customer Dr
Sale of Scrap Cr
Excise Duty Payable Cr

ADVANCES FROM CUSTOMERS
Advances are received from the customers against delivery.
These advances will be recorded in a special general ledger account.

The accounting entry for the same will be:
Bank Account Dr
Advance Customer Payments Cr

These advances will be later on adjusted against the invoices raised on the customers. Advances can be adjusted against more than one invoice at the time of clearing of the invoices against advances.

Adjustment of Advances
Customer Account Cr
Advance Customer Payments Dr

A financial document would be created for each Bank Guarantee received and this document number will be referred to in the Sales Order which would then monitor the value and the validity of the of the

Bank Guarantee instrument wise while doing the billing.
The letter of credit /Bank guarantee given will be recorded as a noted item.

Accounting Entry for Goods receipt
Stock/Inventory account Dr
GR/IR account Cr
Freight clearing account Cr

Accounting Entry on invoice verification of supplier
GR/IR Dr
Vendor account Cr

Accounting Entry on invoice verification of freight vendor
Freight clearing account Dr
Freight Vendor account Cr

GOODS RECEIPT
Based on the Purchase order and the Quantity actually received Goods Receipts (GR) will be done.

Based on the GR done the following accounting entry will be passed in the Financial Accounts
RM/PM Stock Account Dr
GR/IR Account Cr
Freight Clearing Account Cr

EXCISE INVOICE VERIFICATION
On receipt of the excise invoice cum gate pass the following entry will be passed
RG 23 A / RG 23 C Part 2 Account Dr
Cenvat Clearing Account Cr

ERP SAP 讀取會計設定檔

IMG -> Sales and Distribution -> Account Assignment/Costing -> Revenue Account Determination
-> Assign G/L Accounts

With this link, the material that used this account assignment group will be posted with the desired G/L accounts during Billing.

User will not be able to Release the billing document to Accounting if this is not setup.

If you happend to assign it via Cust.Grp/MaterialGrp/AcctKey, then you can let your user use this report to check the material assignment.

* Transaction code VKOA

REPORT ZMATNR_AC_ASSIGN LINE-SIZE 132 NO STANDARD PAGE HEADING
LINE-COUNT 044(001).

TABLES: MARA,
MVKE, "Sales Data for Material
C001. "Cust.Grp/MaterialGrp/AcctKey

SELECT-OPTIONS: S_MTART FOR MARA-MTART DEFAULT 'DIEN',
S_MATNR FOR MARA-MATNR,
S_VKORG FOR MVKE-VKORG DEFAULT 'ALL'.

SELECT * FROM MARA WHERE MTART IN S_MTART
AND MATNR IN S_MATNR.
CLEAR MVKE.
SELECT SINGLE * FROM MVKE WHERE MATNR = MARA-MATNR
AND VKORG IN S_VKORG.

CLEAR C001.
SELECT SINGLE * FROM C001 WHERE KTGRM = MVKE-KTGRM.

WRITE:/ MVKE-MATNR UNDER 'Material',
C001-KTGRD UNDER 'Cust Grp',
MVKE-KTGRM UNDER 'Matl Grp',
C001-KVSL1 UNDER 'Acct Key',
C001-SAKN1 UNDER 'G/L From',
C001-SAKN2 UNDER 'G/L To '.

ENDSELECT.

TOP-OF-PAGE.
FORMAT COLOR COL_TOTAL.
WRITE: / SY-DATUM, SY-UZEIT, SY-REPID,
050 'Material Sales Account Assignment',
120 SY-UNAME, SY-PAGNO.
SKIP.
WRITE: /001 'Material',
020 'Cust Grp',
030 'Matl Grp',
040 'Acct Key',
050 'G/L From',
060 'G/L To '.
SKIP.

2010年2月18日 星期四

ERP SOA

ERP SOA

SOA 就是 Server Side's Service is Independent
SOA 就是 Client Side's Session not Trigger of Server Side's Service

既然是服務導向
Client端不要把 Server 當自助餐檯 自己來挾菜
Client端不要等待 Server 來問你要點什麼菜,
Client端自己看完 Menu 自己勾選投入等待主動服務.

Source::
http://blog.udn.com/al1107/3128991

自己有在訂閱GOOGLE的網路新聞,
最近常收到關於服務導向架構(Service-Oriented Architecture,SOA)
是否無法成為氣候,相對應的軟體是否也終將只是一種口號?
有很多廠商都有相關軟體,我只闡述我理解的ERP範疇。

ERP已經跑了好多年,似乎該有的公司都有了,那如SAP,ORACLE可能準備要收攤...但實際上仍有許多公司繼續的找尋合適的系統,可能升級,可能更換,無論如何,伴隨著公司成長的腳步,系統功能的增強仍是一個關切的議題。

個人待過的前一公司,所研發出的SOA ERP,讓我了解其實ERP可以有很多的彈性與延展性,所以我仍是他們忠實的銷售夥伴,加油加油,共同努力開發這片紅海中的藍海...

ERP SOA

ERP SOA

自己有在訂閱GOOGLE的網路新聞,
最近常收到關於服務導向架構(Service-Oriented Architecture,SOA)
是否無法成為氣候,相對應的軟體是否也終將只是一種口號?
有很多廠商都有相關軟體,我只闡述我理解的ERP範疇。

ERP已經跑了好多年,似乎該有的公司都有了,那如SAP,ORACLE可能準備要收攤...但實際上仍有許多公司繼續的找尋合適的系統,可能升級,可能更換,無論如何,伴隨著公司成長的腳步,系統功能的增強仍是一個關切的議題。

個人待過的前一公司,所研發出的SOA ERP,讓我了解其實ERP可以有很多的彈性與延展性,所以我仍是他們忠實的銷售夥伴,加油加油,共同努力開發這片紅海中的藍海...

ERP 致遠 為企業培育優秀人才再次獲肯定 ??

ERP 致遠 為企業培育優秀人才再次獲肯定 ??
從不批評系統的對與錯
從不研究系統應改進的操作方法與流程
完全記熟設定與操作程序稱為::優秀人才
有考上三張應用規劃師執照鼎新也不會挖角的
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
我會開車我會在三種不同路面開車
汽車公司不會因此請你去設計汽車
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

教育部委託技專校院入學測驗中心辦理的
「委辦技專校院取得民間證照認證執行計畫案」,,
為企業培育優秀人才再次獲肯定。
致遠資管系榮獲資管類應用規劃師評鑑優等獎
致遠董事長蔡清淵表示,為培育企業管理人才,
教育部推動技專院校取得民間證照認證執行計畫案,
並委由各專業單位辦理,
企業資源規劃(ERP)類,
則委由中華企業資源規劃學會辦理評鑑。

蔡清淵表示,致遠管理學院在眾多技專院校的角逐下脫穎而出,榮獲ERP資管類應用規劃師評鑑優等獎,3年來資管系師生努力終於獲得肯定。

資管系主任胡智明表示,為因應企業所需的規劃與應用人才,資管系在前主任王育民的帶領下已默默的努力3年多,輔導學生針對企業資源的規劃與應用考取規劃師與應用師的證照,增強未來在就業市場上的謀職實力,幾年來已有不少學生考取證照。

前主任王育民表示,ERP評鑑,資管系3年多前開始推動,初期以輔導學生考規劃師為主,近2年增加應用師證照的考照輔導,陸續已有4、50位學生考取規劃師證照,20多人考取應用師的證照,這次獲獎是3年來師生努力成果做肯定。

王育民說,ERP規劃師需具備對企業內部的財務、產業部門及內部資源能做妥善結合與規劃的能力,而應用師則是對企業軟體的實際操作需具備相當功力才能取得證照,資管系則針對企業人才需求開設企業規劃與實務課程,讓學生對未來就業市場提前做準備。

ERP SOA 亂中有序 亂中有續 亂中有緒 ??

ERP SOA 亂中有序 亂中有續 亂中有緒 ??

模組層級服務組合案例 ??

>>胡搞也是搞
>>有搞也是搞
>>亂搞也是搞

SalesOrder的模組元件,組合了三個服務,

分別為CrtSO, QrySalsesData, ConfirmSO, <<

依序所作的任務為建立銷售訂單、

查詢銷售訂單以及確認銷售訂單的動作。

PurchaseOrder的模組元件,組合了三個服務,

分別為CrtPO, QryPurchaseData, ConfirmPPPO,

依序所作的任務為建立採購訂單、

查詢採購訂單以及確認採購訂單的動作。

圖5為SalesOrder的實作,
最終模組內部服務的編排方式,
模組的實作可以使用多種程式語言來達成,
如Java以及BPEL,
圖中Receive表示SalesOrder模組的進入點,
而Reply是執行完整個模組之後的回應結果,
QrySalesDataAssign為QrySalsesData的介面,
規定在使用QrySalsesData服務之前,
需要先輸入特定值,
例如此服務的任務為查詢,
所以需要輸入特定的查詢資料,
這些資料和型態都會在介面中規定,
接下來才能夠執行QrySalsesData的服務,
當QrySalsesData服務執行完成之後,
也會有特定的回應,
例如根據輸入資料查詢過後的結果。

ERP Project on Pluralism and Fundamentalism in Germany and the United States

http://www.aicgs.org/index.aspx
http://www.aicgs.org/Projects2/view.aspx?ID=56&origin=results&QS=%27&union=AND&viewby=50&startrec=1&top_parent=155

ERP Project 的基本教義與多重認知在美國德國

ERP Project on Pluralism and Fundamentalism in Germany and the United States

Over the past two years, political relations
between the United States and Germany have stabilized,
while transatlantic economic integration remains deep and extensive.
American and European observers nevertheless speculate that the United States and Europe may be drifting apart in fundamental ways,
undermining their ability to cooperate on a broad range of issues.

German-American differences appear particularly profound
when it comes to the role of religion and religiosity in public and political life.
To some German observers,
the United States appears to be caught in the throes of a fundamentalist revival, while some Americans see Germany as a country that has become so secular that it no longer knows how to deal with religious expression in public life,
as seen in the "headscarf debate."

Behind these simplistic stereotypes lie more complex and fluid realities.
The constitutional and structural division of church and state in the United States has never meant the separation of religion from politics.
And in Germany, societal secularism coexists with church-state cooperation,
for example,
in the provision of religious instruction and social services.
Moreover, despite their different traditions,
Germans and Americans are confronting the dual challenges of two antithetical approaches to religion and public life: fundamentalism and pluralism.

Germans and Americans would benefit from a more nuanced understanding of religion and politics in their respective societies, in German-American relations,
and in our dealings with many other countries and conflicts in the world. Conversely, misperceptions of religion and public life in both countries serve to further highlight our differences rather than commonalities, and justify and strengthen the belief in the necessity and wisdom of a transatlantic divorce.

This AICGS project seeks to address the challenges presented to governments and societies by religious fundamentalism and by religious diversity.
The project's workshops address, among others,
issues such as the definitions and perceptions associated with fundamentalism and pluralism; the varying historical contexts within which fundamentalism and religious pluralism have existed;
the different effects of fundamentalism and religious diversity on politics in the United States and Europe; and the impact of these issues on democratic societies on both sides of the Atlantic.

..........................................................................................................

This project was concluded in February 2007.

In conjunction with this project, AICGS hosted two workshops. The first workshop on German and American Perspectives on Religion and Fundamentalism was held in November 2006 in Washington DC. The second workshop in May 2006 at the Humboldt Universität in Berlin focused on German and American Perspectives on Religious Pluralism: Domestic and Global Dimensions.

The following publications were published by AICGS as part of this project:

German-American Issues #7
Reconciling Religion and Public Life: Essays on Pluralism and Fundamentalism in the United States and Germany
By Patrick J. Deneen, Türkan Karakurt, Charles T. Mathewes, Erik Owens, and Rolf Schieder

Issue Brief #9
Confronting Religious Diversity in Germany and the United States
By Cathleen S. Fisher
*Please see erratum statement

Issue Brief #13
Disturbing Fundamentalism
By Joshua J. Yates

AICGS continues its focus on religion with a new project on Religion In Politics: Impact of Culture and Religion on Public Policy Debates, generously supported by the Robert Bosch Foundation.

2010年2月17日 星期三

ERP Dynamic Default Logic 動態內定值 與 動態驗證

first : Add Field DefaultLogic
second : Add Field IsForceDefaultLogic
假如已經有資料是 連動替換 或是 不可替換

UML ERP 本班採用UML+JAVA+XML+DB2教導並設計部份ERP功能

本班採用UML+JAVA+XML+DB2教導並設計部份ERP功能 ??
都是一些沒實戰經驗的有證照講師 ??
300-500小時真的可以教會這些 ??
還是學會概念 ??






技術最主流:

從風起雲湧的電子商務e-Commerce電子商務時代正式進入了e-BUSINESS電子化企業時代,所謂「e化」,也可稱為「電子化」,是具有雙重的定義:

第一種定義則是攫取以科技為架構的電子商務,也即是所謂的e-Commerce,利用網站來做行銷,以低成本、高效益的數位應用為手段,對客戶提供產品及服務。無論當今人人皆談.COM的泡沫化,但在這e化的過程中,仍是企業不得不走的路。

第二種定義為是運用數位科技的手段,改造企業成為電子化企業,也即是目前人人皆知所謂的e-BUSINESS,目標在於運用數位科技,重新打造企業組織,整合e-Commerce技術,並擬訂新的競爭策略,進行e化企業。其中之技術包含供應鏈管理系統(SCM)、企業資源規劃系統(ERP)、知識管理系統 (KM)、客戶關係管理系統(CRM)等不僅可提升經營效率,更可達到全球經營運籌帷握的企業管理模式。

因此企業在電子商務的經營模式,整合e-Commerce的e-BUSINESS才是目前唯一的解決方案,更根據「資策會資訊市場情報中心」統計,一九九九年我國SCM市場規模為新台幣為十八億餘元,ERP市場規模為新台幣六十二億餘元,CRM市場規模為新台幣八千萬餘元,其需求及成長性可見一般。

 

整合最強



本班即採用此一模型,除了原EC的技術更整合e-BUSINESS電子化企業的ERP、SCM、KM及CRM的最新最完整的技術。課程涵括技術如下:

顧客關係管理(CRM):本班採用Lotus Domino + DB2教導並建置CRM功能。CRM系統包含如型錄管理、線上行銷、訂單處理、貨款處理、客戶資料處理、客戶個人化服務、訂單追蹤、拍賣管理…等功能。


企業資源規劃(ERP):本班採用UML+JAVA+XML+DB2教導並設計部份ERP功能。ERP系統包含生產排程管理、物料需求管理、財務會計系統、績效分析系統、庫存系統、採購系統、銷售管理系統…等。

供應鏈管理系統 (SCM):本班採用JAVA+XML+DB2教導並建置BTOB之供應鏈資訊技術。 SCM系統在於整合上下游供應鏈體(如供應商、代工廠…)各企業夥伴間各種型態的資訊流,協助製造業做到供應鏈管理的最佳化。

知識管理系統(KM):本班採用Lotus Domino進行企業網路工作流程控制及企業知識管理機制。

 

在最新及最主流的技術課程裡,您將是企業不二的選擇。

工作最多:

從本中心歷屆結訓學員的就業狀況,每人皆有工作機會,工作機會之多可說名列前茅,幾乎人人皆有工作,在不景氣中仍一路長紅,只要您給自己一個機會,我們將給您意想不到的收穫及未來。


我們的學員遍佈各大企業,如IBM、前進國際、宏瞻、翔威、飛雅、艾威、資策會、太世科、高成、金資中心、網通、遠傳、英特連、泰新、中時電子報、新學友、安泰、天河、台灣固網、網際威信、台灣網路、華碩…等公司。

 

工作最多 全國知名:

UML物件導向系統開發:本班為全國第一,也是中心唯一教授UML分析設計,並以此製作實務之專案,廠商需才若渴。

 

一貫化物件導向程式設計:本班為全國第一個完整採用網際網路最熱門的物件導向語言-JAVA,並以JAVA來撰寫專案。

 

企業網路工作流程控制:採用全球銷售數量超過二億套,在台也超過數十萬套的Lotus Domino群組軟體。客戶包含總統府、資策會、中華電信、統一、花旗銀行、中央信託、聯電、旺宏、仁寶、宏碁、力晶、長春石化、中廣、惠普、IBM、嬌生、華航、日月光、天下、晶華…數千家公司,新竹科學園區九成以上 使用Lotus Domino,就業沒問題。

 

作業系統雙雄:採用Microsoft Windows作業系統及LINUX作業系統,皆為全球的熱門作業系統,掌握現在與未來。

 

EC及e-BUSINESS技術:舉凡企業工作流程、顧客關係管理、企業資源規劃、供應鏈管理、知識管理等並整合XML技術,可完全在專案實作中呈現整合技術,學以致用,更讓客戶更加讚賞。

起薪最高:

由於企業電子化的影響,對精通物件導向程式語言JAVA及物件導向分析人才需求甚多,但目前國內咸少物件導向分析及開發人才,要養成此類人才需有特別及完整一貫性的教學方式,不是一般JAVA入門課程即可培育,而唯有本班一貫的JAVA完整程式設計 (時數近200小時),如JAVA物件導向程式語言、JAVA JDBC資料庫程式設計、JAVA 網際網路程式設計(JSP、JAVA Servlet)、Enterprise JAVA。因此從本班歷屆結訓學員就業狀況調查,從事相關物件導向開發及分析之人才的起薪相對較一般程式語言人才高出約伍千元以上。

 

物超所值:

加值再加值

本班課程中UML課程在國內電腦補習班仍未有此課程,在台灣的UML五天課程價值50,000元台幣。
在美國的JAVA三天課程價值美金780元。
XML三天課程價值美金1,175元。
Lotus Domino課程價值美金約8仟多元。

因此有許多在美居住人士特別前來報名參加本班課程,即是看上這超級價值數拾萬元的整合尖端技術課程。
國外課程價格,詳見http://www.outsource-labs.com/training/ussched.html
http://www.infoimage.com/education

 

優惠再優惠

原價168,000元,第八期額滿!
第九期現在報名優惠價129,000元,
勿失良機!!
不要錯過這個特別價格喔!

 

這些價值只有在e-BUSINESS領航資訊工程師養成班才有,目前特價優惠中,報名要快!

 

2010年2月16日 星期二

ERP BPM 李仰哲 為何BPM專案需求這麼難搞定?

來源::
http://www.zdnet.com.tw/enterprise/column/bpmtalk/0,2000088808,20143419,00.htm
為何BPM專案需求這麼難搞定?

李仰哲 2009/12/17 04:00:00

需求確認一直是專案的必要步驟,
商業流程管理(BPM)專案自然也不例外。
但您知道BPM專案與一般的資訊系統專案在需求蒐集方面有哪些不同嗎?

:: 流程管理 是 管理流程 ??
:: 流程管理 是 透過流程線上簽核 ??

就像某股市名嘴說的:
「好的老師帶你上天堂,不好的老師帶你住套房」
…在專案的世界裡,
則有以下這麼一句話:
「好的SA/key users帶你上天堂,不好的 SA / key users帶你改不完」。

::好的客戶點你百道菜,改不完好,改不完才有錢賺。

BPM專案尤甚如此,在筆者經手的BPM專案裡,
只要企業沒有先搞清楚為何而戰?為誰而戰?
…那該專案往往都會走向失敗。

所謂的「為何而戰」是指,
企業必須先確認、決定BPM專案的目標與範疇,
以及理性的排定需求項目的優先順序(priority),
以及判斷哪些需求是必要(must have)的、
哪些是有了會更好(nice to have)。

至於「為誰而戰」則決定了哪些人的期望應被優先滿足,
某個程度來說,
其也是左右must have與nice to have的主要變因。

:: must have,改不完才好,改完就沒有錢賺。
:: 公共工程是因為營造廠要賺錢,不是馬路需要修。

而且,就像筆者之前曾在BPM
是Top down還是Bottom up系列文章裡面提到的:
在BPM專案裡,為誰而戰是很容易就會被隱瞞或者是誤導的。
因此專案負責人必須要特別注意該點。

搞懂為誰而戰!

為誰而戰之所以這麼容易在BPM專案中失焦,
與該類型專案多半涉及跨部門業務流程有關。

如果負責BPM專案的經理不是由擁有跨部門經驗、視野的中高階主管擔任,
那其多半沒辦法察覺、規劃出一條更有效率的跨部門業務流程,
比較常見的結局是:依既有的紙本「圖章流」擬定跨部門業務流程。

問題來了,到底該由誰來統籌BPM專案?
傳統的資訊專案幾乎都是由該系統的主要使用部門負責確認、測試系統需求,
如人事系統由人事部門負責,
財務系統由財務部門主導等,
但上述作法並不適用於涉及跨部門業務流程的BPM專案。


對企業來說,負責蒐集BPM專案需求的人若不具備跨部門視野,
那提出來的業務流程多半只是複雜化自己熟悉的流程並且忽略、甚至是簡化其他部分,
當然,
該類BPM專案的實作成果除與高階主管心中預期的成效有著極大的落差外,
企業多半也沒辦法藉由該專案獲利、或者是拉升員工生產力。

簡言之,企業若能在BPM專案開始前、
便找到符合資格的人來當流程需求的負責人,
將能大幅拉升企業導入BPM專案的成效。那麼誰適合呢?
筆者建議由平常就已經在協調跨部門業務工作、
且對公司營運狀況有一定了解與決策權限的總經理特助。

除了找到對的負責人外,
筆者還常常在BPM專案中看到另外一個問題:
先決定專案成員,
之後再想法子分派任務給上述成員…看到這,
相信有專案經驗的讀者一定都發現問題點在哪了:
上述作法與一個無包袱、合理的專案成員招募流程完全相反。

因此建議BPM專案經理先確定專案涉及的業務流程有哪些,
之後再依上述流程內容找出適切的專案成員。
在確認完上述方向後,接下來的工作才與一般的資訊專案一樣,
如成員們必須深入了解各部門員工的作業流程、遭遇的問題,
並設法釐清該怎麼調整員工的作業流程,
才能發揮BPM專案的成效。

至於怎麼做?則待筆者在下一篇文章與您分享。(未完,待續)

ERP MDA UML 大起大落關鍵字:好事多磨

牡羊座
大起大落關鍵字:好事多磨

牡羊座的人在2010年不可謂不鬱悶,
他們真的是非常之鬱悶。
試想想,
有誰能夠受得了自己無論什麼事情都會遇到波折,
甚至無疾而終?
而且往往是希望越大的事情,
最後失望更大。
這一切歸根結底不過是一個心境問題,
牡羊座的人往往熱情,勇往直前,
卻很少能靜下心來細細思量,
其實很多事情因故作罷都是由於一些很細節的原因。
牡羊座的人若是能使心境平和,
那麼他們在2010年裡的成長將會是質的飛躍。

UML MDA ERP 把工具使用程序 MDA 化

UML MDA ERP 把工具使用程序 MDA 化,,

無恥的 UML


以 Function 為依據的 MDA ?
把工具使用程序 MDA 化
並不是設計出 MDA 化的系統

MDA开发程序 ??




MDA(Model-Driven Architecture)与UML(Unified Modeling Language)同为OMG(Object Management Group)机构之标准。
MDA主要将生成的UML模型,分为下列三个阶段:
● CIM(Computation Independent Model)——聚焦于系统环境及需求,但不涉及系统内部的结构与动作细节。

● PIM(Platform Independent Model)——聚焦于系统内部细节,但不涉及实现系统的具体平台(Platform)。

● PSM(Platform Specific Model)——聚焦于系统落实于特定具体平台的细节。例如,Spring、EJB2或.NET都是一种具体平台。



最后,程序员会依据PSM的UML模型内容,按图施工,编写出适用于特定具体平台的代码。



MDA提出的解决方法——将企业及应用系统与实现技术平台分离,且以统一建模语言UML来表达与平台无关的PIM,然后再设计出适用于特定平台的模型PSM。如此一来,因为分隔且封装了企业与技术两方面的变化,所以降低了两者之间的牵动。



MDA主张将设计切分成PIM和PSM。



MDA项目开发的第一步骤从CIM开始,不同于PIM和PSM,CIM试图表达信息系统的应用环境,而非信息系统本身。

在进行CIM时,关切的是与企业相关的营运目标、实现条件及运作流程等,先了解信息系统的应用环境,才有可能为企业量身打造出完善的信息系统。



在经历构建CIM的过程中,除了可以逐步了解企业,同时也建立与业务人员之间的沟通方式及默契,还让业务人员可以参与信息系统的开发。



CIM旨在记录企业领域里的重要需求与概念。

PIM和PSM之间的界限,比较容易混淆,两者所关切的主体都是信息系统,分别的界限在于“平台”(Platform)一词。

简言之,PIM与PSM的界限在于,是否支持特定的具体平台。前者与具体平台无关,后者则得适合某一个特定的具体平台。





分析步骤参考:(CIM、PIM阶段)

CIM-1:定义业务流程,产生业务用例模型。

CIM-2:分析业务流程,产生活动图。

CIM-3:定义系统范围,产生系统用例图。

PIM-1:分析系统流程,产生系统用例叙述。

PIM-2:分析业务规则,产生状态图

PIM-3:定义静态结构,产生类图。

PIM-4:定义操作及方法,生成序列图。

ERP 好好讀完 Source Code . 我對不起你!!

ERP 好好讀完 Source Code . 我對不起你!!

return m_depOnField.containsKey(columnName); "C_DocTypeTarget_ID"

return m_depOnField.containsValue(gridField); '@IsSOTrx@''@IsReturnTrx@'

CalloutOrder.docType:
m_vo.ValidationCode=C_DocType.DocBaseType IN ('SOO', 'POO')
AND C_DocType.IsSOTrx='@IsSOTrx@'
AND C_DocType.IsReturnTrx='@IsReturnTrx@' [11]

/**************************************************************************
* Has this field dependents ?
* @param columnName column name
* @return true if column has dependent
*/
public boolean hasDependants (String columnName)
{
// m_depOnField.printToLog();
return m_depOnField.containsKey(columnName);
} // isDependentOn

/**
* Get dependents fields of columnName
* @param columnName column name
* @return ArrayList with GridFields dependent on columnName
*/
public ArrayList getDependantFields (String columnName)
{
return m_depOnField.getValues(columnName);
} // getDependentFields




public boolean containsKey(Object key)
{
return m_keys.contains(key);
} // containsKey

/**
* Contains Value
* @param value test value
* @return true if value exists
*/
public boolean containsValue(Object value)
{
return m_values.contains(value);
} // containsKey

ERP 樹德科大

>> 畢業時至少可擁有1至2張國際證照 ??
>> 被挖角 ??
>> 被高薪挖角 ??
>> 能獨當一面 ??
>> 不給學位也要來讀
>> 不給學分也要來讀
>> ??
>> 有1至2張國際證照!!
>> 何必用四年讀大學!!
>> ??
>> 畢業前至少能考取SCJP、MCTS等國際證照
>> SCJP、MCTS 是沒經驗的最低標準
>> 科大要創造有經驗人才的品牌保證
>> WorkFlow ERP整合應用競賽
>> 應用??Not Desgin Not Customizing ERP

樹德科大 給學生學習地圖
想成為資訊科技頂尖人才,
不能輸在起跑點。
樹德科技大學資訊學院研發一套階段性教學模式,
替學生量身訂作「學習地圖」;
學生只要按部就班「過五關、斬六將」,
畢業時至少可擁有1至2張國際證照,
作為進入職場的敲門磚。

資工系二年級的陳泰呈、黃丰伯,自認高職時「超混」,
聽不懂的就含糊帶過,考試也臨時抱佛腳;上大學後,
系上開的課由淺入深,碰到瓶頸時老師帶著重複學習,
漸漸找到讀書的竅門。

資工系主任吳鴻志說,
不少學生上大學後玩心仍重,
遇不懂的便放棄;
與其讓他們未來40年後悔,
不如現在教會他們做學問。

吳鴻志說,階段性教學法共分6階段,內容循序漸進;
每周1小考,6周1次大會考,
每個關卡都需及格,才能推進下一個階段。
整個學程就像張「學習地圖」,
只要按圖索驥,畢業前至少能考取SCJP、MCTS等國際證照,
進職場更具優勢。

「系上學長充當宿舍輔導員,幫學弟妹課後輔導,是資訊學院的優良傳統。」
吳鴻志說,學生家族串起的學習鏈,更可增進學習意願;
資工系引用這套教學模式後,
在嵌入式系統設計競賽、2009全國大專院校ERP實務個案競賽,
以及邁向行動化的WorkFlow ERP整合應用競賽,均是優勝;
電通系在第5屆全國電子設計創意競賽及模糊動態逃生指示系統競賽,
也獲佳作。

資訊學院院長陳龍銘說,
這套教學法師資成本很高,
但學校不放棄任何一個學生;
將來也將實施「課程綁證照」,學生只要考取證照就給學分,
大三起更提前規畫畢業製作,
讓學生踏進職場前,就蓄滿能量。

2010年2月15日 星期一

新年感觸 罪孽

四十多年前 祖父去世時

說 我伯父最不孝 .,賺最多錢 一毛錢也不給他治病

光復前三叔公與三伯父在日本讀大學,,

四叔公與大伯,二伯早死,,

現在我伯父嚴重中風已經 快 8 年,,

我在我媽面前告訴我兒子

若要晚年中風有人推輪椅

就是要 學伯父貪很多 就會有輪椅坐

報應

新年感觸

罪孽

SAP 會計科目

GR/IR

1,採購的 an incoming Invoice當被過帳時,必須參照(refer to)
(1). a Purchase Order
(2). a Good Receipt(沒收貨就沒有the good receipt)

2,Invoice Verification被過賬的結果
發票校驗時:
Dr:GR/IR科目 (在途物資, 收到某張訂單的發票)
Cr:應付帳款 (the vendor account is credited.)

3,Goods Receipt被過賬的結果
收貨時:
Dr:存貨 (存貨暫估入賬)
Cr:GR/IR科目 (應付暫估, 收到某張訂單的貨物)

4,當一個訂單的貨物和發票都結算完畢時,
該訂單的GR/IR科目餘額應為零。

5,GR/IR是個過渡性科目,用於記錄在途物資和應付暫估,
為什麼要如此做呢,是為了出財務報表。

因為GR/IR非資產也非負債科目
(期末出報表時必清零,下一期初轉回).
通常定義兩個也可一個科目(在途物資-到資產,對那寫BNG
(Billing No Goods)的,
應付暫估-到負債,對那些GNB(Goods No Billing)的),
SAP會自動產生會計憑證並通常是月結後第一天又沖回來.
而且通常GR/IR科目會做open item management, 自己慢慢體會吧.

6,月結時,如果某張訂單的GR/IR科目有借方餘額,
轉入在途物資,只是月結用,月結後又要轉回來的
本月末 月結時:
Dr:在途物資(資產類)
Cr:GR/IR科目

次月初 轉回時:
Dr:GR/IR科目
Cr:在途物資

7,月結時,如果某張訂單的GR/IR科目有貸方餘額,
轉入應付暫估,只是月結用,月結後又要轉回來的

本月末月結時:
Dr:GR/IR科目
Cr:應付暫估(負債類)

次月初 轉回時:
Dr:應付暫估
Cr:GR/IR科目

月結時,做在途物資和應付暫估。
計算同一GR/IR科目,同一應付帳款統馭科目資料的合計結果:
借方餘額計算值(票到貨未到) = 同一訂單中的借方合計 - 同一訂單中可清帳的行項目餘額
貸方餘額計算值(貨到票未到) = 同一訂單中的貸方合計 - 同一訂單中可清帳的行項目餘額
本月底記帳
借方餘額計算值:
Dr:在途物資
Cr:GR/IR換算調整

貸方餘額計算值
Dr:GR/IR換算調整
Cr:應付暫估

下月初沖銷
借方餘額計算值
Dr:GR/IR換算調整
Cr:在途物資

貸方餘額計算值
Dr:應付暫估
Cr:GR/IR換算調整

8,SAP FI/CO在途物資,應付暫估的例子:
一般企業不應做BNG(Billing no goods),
然而在SAP中是先做BNG時回自動對應到GR/IR的,等你收貨後會自動清掉.

比如PO qty 100, price 10 total 1000,不同的企業配置可能不同.
1.如是新PO, 沒做任何收貨,一般你是先MIRO不了
(如果vendor主資料是GR based inv. verification)的,
因沒有reference doc, 如此Po的相關Item已經收貨了,可先做發票校驗.
各企業可能會有所不同.

2.如果以前收了10個, 比如MIGO產生的mat doc是4500000111.
Dr:Material 100 +
Cr:Gr/IR 100 -

miro時你對reference doc 為4500000111的校驗, 比如發票上是100.
將qty change 成100, amount 1000.
產生的會計憑證是:
Dr:GR/IR 1000 +(自動產生GR/IR 1000)
Cr:AP 1000-

等你再收90的時候.
MIGO:
Dr:Material 900
Cr:GR/IR 900
不就自動清了嗎?

SAP FICO在途物資,應付暫估
1.OBYP: BNG, GNB
2.設置幾個會計科目:
GR/IR adjustment,在途物資,應付暫估
對GNB( Goods Receive but no billing-invoicing),
資產(材料)增加了但未付款,
其實是應付暫估

對BNG(通常企業MIRO要求vendor invoice,
vendor 送貨單和我們的收貨單對照-通常就是列印MIGO產生的Material Document
統一才確定AP,
當然PO price change且已經 MIGO,會不統一,
所以BNG -Billing no Goods Receive不大會出現),

將是你的在途物資(確定了AP但沒到貨).
為什麼要這樣?因為GR/IR是一個中間科目,
對GNB其實是將來的負債,
對BNG是潛在資產,
做balance sheet不能將GR/IR帶去,
所以有這樣的做法.

Auto clear GR/IR .根據OBYP設置的會計科目自動產生憑證,
月結後下月開帳後立即自動調整回來。

大學資訊服務技術中心校務資訊組

來源 http://www.ithome.com.tw/itadm/article.php?c=58189

??資訊中心有比資訊需求者更了解需求的深度廣度與精度與急迫性嗎??

??資訊中心有比制度規劃者更了解需求的深度廣度與精度與急迫性嗎??

那資訊中心 到底是扮演的是:: ??

UML : CIM / PIM / PSM ??

需求者/規劃者 應該自行擬定 輸入畫面 與 查詢畫面
需求者/規劃者 應該自行擬定 報表欄位 與 簽核流程


走進大學資訊服務技術中心校務資訊組組長的辦公室內,
會發現牆上貼著一張大大的工作計畫表,
上面詳細記錄著今年大學56項資訊工作計畫的進度,
每個月該完成哪些工作,進度檢核的日期等資訊,
透過這張表格都可以一目了然。
仔細算一下,其中有32項工作,
都與校務資訊組組長任職的校務資訊組有關。

不過一般人一定不知道,
這張表背後其實代表著整個大學資訊工作管理流程的大變革。
除了工作流程和進度檢核日期都詳細的記錄在表上,
現在大學的資訊單位,每季還會列出一份季報,
季報內會記錄每個人工作進度的狀況,
並且詳細的將資訊人力與資源應用的狀況列在其中,
讓全校所有使用者單位可以透過季報,
看到自己提出的需求,達成的進度與投入的資源、工時。
這些舉措,都是在現任大學資訊服務技術中心主任,
於3年前上任後才開始推行的管理措施。

將資訊工作進度透明化,取得使用者的信任
在大學資訊單位已經工作超過10年的校務資訊組組長感受尤深,
她認為,這些改變都是資訊管理上一種好的改革。
她說:「以前常常會有明明已經投入資源和人力去做系統,
使用者卻常抱怨說資訊人員都沒在做的狀況發生。
現在透過量化且透明化的工作季報,這樣的問題就少了很多,
資訊單位和使用者單位可以擁有比較良性的溝通。」
校務資訊組組長更補充說道:
「這些改變和主任的推動密不可分,主任是一個很特別的主管,
常常會希望以管理企業的方式來管理學校資訊工作的流程。」

3年前,主任接手大學資訊服務技術中心主任的職務,
當時大學的資訊架構十分紊亂,
很多部門都擁有自己外包的資訊系統,
但是又沒有專門的人才負責管理這些系統,
使得問題叢生。

再加上外包的過程,往往資訊單位都沒有參與,
沒有專業人才協助驗收,事後發生問題時,
只能受制於外包廠商,花錢請廠商處理,
導致資源和人力的浪費。

於是在校長的強力支持下,主任首先推動資訊架構的集中化,
想辦法將不同單位自行外包的這些系統,
都收回機房統一管理,並且要求所有的外包專案,
未來都必須由資訊單位參與,
避免過去無法統一驗收與管理的弊端。

在這段過程中,主任發現,之所以會造成這樣的狀況,
問題的核心其實在於使用者單位已經無法充分信任資訊單位。
主任說:「比如說,如果總務處想做一套新系統,
但資訊單位今年的工作流程實在已經排滿了,
雖然允諾使用者將在明年開始進行,
但等不及的總務處,就會自己發包,
用自己的預算想辦法在今年就做出系統。」

也就是說,當時很多使用者單位,
因為不了解資訊單位的工作進度與流程,
往往會從單位自己的本位思考出發,
認為資訊單位就是進度慢、不夠靈活,
進而自行發包,於是才會衍生出後續的管理問題。
舉例來說,可能某個處室的辦公室內,
就放著一套系統,由特定的承辦人負責管理。
「所以會有一種很離譜的狀況發生,如果剛好承辦人放假,
又有人不小心把伺服器的插頭踢掉,那套系統就癱瘓了。
必須一直等到承辦人回來,通知外包廠商來處理,
才能恢復正常。」主任說。

在這樣的狀況下,主任和校務資訊組組長討論後,
決定以工作季報的方式,將資訊單位的運作、資源投入狀況,
完完整整的攤開在所有的使用者單位面前。
這套制度是這樣的,
資訊單位的人每個月都將自己負責的工作進度、投入工時記錄下來,
然後每兩個星期由組長負責回收,
每一季統計出一份季報,將工時和投入的資源計算到小數點後第一位,
讓所有使用者單位都可以看到自己提出的資訊需求進度與資源投入狀況。

主任認為,這樣的做法,
除了可以重新取得使用者單位信任外,
也能讓工作進度之所以延宕的原因,完全透明化。因為在工作季報上,
只要有任一資訊需求處理的進度延誤,
資訊單位就會以不同顏色標明,來區分其延誤的原因。
比如說紅色是因為資訊單位自己進度落後;
某一種顏色是使用者單位無法騰出時間共同討論需求;
而另一種顏色則是雙方都要負責。如此一來,
不同單位的主管,在看到季報時,
都可以很明確的看到延宕的責任歸屬,
也能快速的了解進度落後的原因。

除此之外,這樣的工作記錄方式,也讓不同部門在提需求時,
能夠從全盤發展的方向來考慮,不同單位可以透過季報討論,
確認資訊單位的工作負荷狀況,
討論新的需求是不是符合全校的利益,該不該外包?
不會再有「不知道資訊單位到底在做什麼?」這種質疑。
而資訊單位內部,也能透過詳細的工作記錄,
檢視每個人的工作狀況,並且設定進度的檢核點,
督促且提升工作效率。

在這些措施之後,果然大學的資訊運作,逐漸轉為集中化,
由資訊服務技術中心統籌所有資訊化的推動,工作進度也更能被掌握。
於是,大學的資訊單位就更進一步,開始進行系統的整合,健全資訊系統的體質。
除此之外,原本各地零散的委外系統,就想辦法透過API整合;
後端資料庫也透過SQL Server的功能,
將不同的資料庫的資料串起來,
目前已經完成了將近9成的整合。

2010年2月13日 星期六

ERP 上線你要確認事項::

如供應商帶出
::應付帳款-原料、應付帳款-商品,應付費用(會計科目)
之判斷規則
◎由會計提供規則予SAP寫程式,日後由IT維護

>> SAP 就是嚴謹在不能由會計人員來設定會計科目歸屬
>> 會計人員一般都是當地就地由總經理或財務經理僱用
>> 會計科目歸屬由子公司決定造成總公司財報不一致性
>> 但科目歸屬其實不應複雜到設定需要顧問
>> 一個資深會計主管或會計師都需要顧問
>> 好的系統設定需要顧問真是笑話
>> 就是要你進迷宮再賣你地圖

應付帳款-原料,應付帳款-商品,應付費用、、、、、、
Payable-RawMaterial,Payable-Commodity,Payable-Service

借:進貨項目(Product) GR/IR
貸:進貨對象(BPartner) Payable

借:進貨項目(Product) Asset/Expense
貸:進貨對象(BPartner) GR/IR

依據::進貨對象類別 + 進貨項目類別 + 單據交易類別:: 借: Asset/Expense
依據::進貨對象類別 + 進貨項目類別 + 單據交易類別:: 貸: Payable

供應商基本資料主檔--採購資料交易條件 "
Q1:採購單交易條件以此預設值,亦可自行於該筆採購修改
(SAP用1組權限核准惟僅1階需討論有權限WHO?)
【請 SAP確認FI後端有無解決方式】

Q2:SAP僅提供一供應商一種交易條件,若有二種則需由採購單同上模式修改
【未有供應商+料號+交易條件】

Q3:確認交易條件設定之權責部門?"
供應商群組設定 " 供應商資料卡建立時,若以統一編號設定,則供應商不得具備有2種以上身分(如:原料供應商、商品供應商、委外代工供應商),待確認?

庫存盤點方式設定 (提供盤點清冊或一單一物、共用) 待確認?
原物料請購作業流程 請購由PP模組MRP展開請購需求,亦可自行輸入請購
(視公司管理決定設控管與否?)

2010年2月12日 星期五

UML MDA

UML MDA

你需要冷靜看事情 Oracle ERP / SAP 的 SA 如何做 ??

MDA 抽象 再 抽象 .. CIM 與電腦化無關 就是制度文件 制度流程

MDA 抽象 再 抽象 .. PIM 與電腦化 :: 有關
MDA 抽象 再 抽象 .. PIM 與作業平台:: 無關
MDA 抽象 再 抽象 .. PIM 與資料庫 :: 無關


MDA 抽象 再 抽象 .. PSM 與電腦化 :: 有關
MDA 抽象 再 抽象 .. PSM 與作業平台:: 有關
MDA 抽象 再 抽象 .. PSM 與資料庫 :: 有關

MDA

MDA 是與 Function 無關

就是將 Purchase Order/Sales Order/MfgOrder /SubContract Order 抽象成 Order
MDA 是與 Function 無關

就是將 Purchase Receipt/Sales Shipment/
MfgOrder FinishGoods MaterialIssue /SubContract FinishGoods MaterialIssue
抽象成 InOut

MDA 抽象 再 抽象
Order / InOut 抽象成 Window/Tab/Field!!!!

ERP 走在泥土上的雲端科技服務商

ERP 走在泥土上的雲端科技服務商

既然是雲端何需到固定地點去上班 ??

既然是雲端何需年假10天,5天給薪病假 ??

既然是雲端何需冰箱飲料零食盡量吃 ??

創新的研發 是雲端 免去上班 給個出席車馬費 !!

創新的研發 是雲端 免去上班 給個完工獎勵金 !!!


(新加坡商立可人事顧問公司 代徵)

這間公司幾個賣點
1.工作環境有彈性,注重團隊生活
2.第一年年假10天,5天給薪病假,冰箱飲料零食盡量吃
3.目前公司接的案子都是國外知名廠商的大專案,做一些創新的研發,並有自己的產品,因此相當適合有創意,熱愛挑戰的人
4.公司發展雲端運算,有前瞻性,包括google, Trend, 微軟等大公司皆在研發此技術

面試職位 : Java EE/Software Engineer
【職務說明】
Java EE程式設計工程師在本公司負責核心產品的開發, 需具備Web Javascript程式設計技能, 熟悉JavaEE程式語言語法以及團隊合作的能力. 除了單純開發程式之外, 公司鼓勵員工創新, 並協助員工在創新之餘申請專利等將創新轉換成商業價值. 所需技能: Web-based Javascript, CSS, Ajax相關技術,熟悉後端Struts2, Spring framework等MVC pattern尤更佳。

職務名稱: Java Network/Software Engineer
【職務說明】
Java 程式設計工程師在本公司負責核心產品的開發, 需具備Java網路程式設計技能, 熟悉Java程式語言語法以及團隊合作的能力. 除了單純開發程式之外, 公司鼓勵員工創新, 並協助員工在創新之餘申請專利等將創新轉換成商業價值. 所需技能: Java Socket Programming, Network Knowledge, Java Programming Language, Team work, Constant Innovation
英文讀寫要好,可基本溝通

應徵請將履歷Mail至: wesley@recruitexpress.com.tw
公司地址:台北市信義區

與其讓自己的履歷表流浪,不如找個好的顧問幫你「推薦」
Wesley Lee

2010年2月10日 星期三

ERP ADempiere / Compiere 會計

Some General Ledger Accounts are Document controlled,
this you cannot book manual,
because this ledger account is connected to a document (or a process) and booked automatically.

Where can I see which " document controlled ledger account" is connected to which document?

For example the document controlled ledger account Tax Due 21610
will be created automatically when posting when using a TAX CODE is a SALES INVOICE
>>
>> 哪些單據會產生::Tax Due 21610 ::
>>
But the document controlled ledger account Tax Liability 21620,
to when will this account be created/booked?
>>
>> 哪些單據會產生::Tax Liability 21620 ::
>>





And the document controlled ledger account Retained Earnings 32900,
when will this be created/booked?
>>
>> 哪些單據會產生::32900 Retained Earnings ::
>>


There is no automatically year-edn process,
so year-end process to close the year is manual process.

So to summarize who can help me to explain,
HOW and WHEN are the document controlled ledger accounts are created?

Regards,
Ismet

2010年2月9日 星期二

ERP SAP 的自動會計科目對應機制

ERP SAP 的自動會計科目對應機制

SAP MM Automatic Account Determination

Sometimes I wonder how many implementations it would take to get the Automatic Account Determination process down-pat.

Every consultant I’ve dealt with has had to brush up on the account determination process before implementing it, no matter their experience level.

So, for my sake, and yours, here’s a simple (as much as it can be) explanation of what Automatic Account Determination is,
what it does, and how to do it.
Why do I need Automatic Account Determination?

Every time a transaction with financial implications is run, postings must be made to financial accounts. I’m a logistics consultant, so to be honest,
I don’t care. But it has to happen, so since this is an integration point between us and FI, unless you can make the FI consultant do it, we have to fight through it.

We could let the user enter the GL account each time we post an invoice or goods receipt, but SAP is supposed to be a productivity tool, so that’s not really acceptable.

So, the idea is that the system will determine (based on our config)
what account to post to depending on a number of factors, namely;
company code, valuation area (plant vs company code),
material / material type,
transaction or business event and movement type.

So, with five variables, the determination system must be pretty complex?

Yes. When you come to understand the way SAP have done it, it is an elegant solution, but it is pretty damn complex.

Before you begin, sit down with the FI consultant, find out what accounts there are and in a business sense, how and when each of the accounts should be posted to. Discuss all five of the categories above. With this info set in concrete in front of you, you can begin the SAP config.

Here’s the lowdown, try and stay with me.

Essentially all that is happening is that SAP are allowing us to maintain a record of “if x and y happen, then use account z” and “if a and b occur then use account q”.

I can just imagine the conversation many years ago in Germany (translated for your convenience):

“Ok, we need a table of possible outcomes for account determination.”

“That’s faaarrr too easy. Let’s break it into fifty different tables, come up with many interchangeable names for the same thing, and hide the tables beneath several different, unimaginable directory paths.”
Configuration Steps

First up, since we have to do something first, let’s specify our valuation control. This is done via

IMG > Materials Management > Valuation and Account Assignment >
Account Determination > Account Determination Without Wizard >
Define Valuation Control.

All that we’re doing here is specifying whether the system should consider the valuation grouping code in it’s determination procedures.

“What’s the valuation grouping code?” I hear you asking?

The valuation grouping code (vgc) is a collection of valuation areas that will have the same account determination. Since a valuation area can be a company code or plant, we can say that a vgc represents a group of plants or company codes that have the same account determination.

If you don’t use the valuation grouping code, you’ll have to set up account determination for each plant or company code in SAP.

If you’re using the vgc, then jump into “group together valuation areas” and assign your company codes or plant a code (any code). They should be somewhere in the list automatically, all you should need to do is give them a code.

The next step is to manage different account determination per material type. This is where it can get complicated if you let it.

The valuation class is linked to an account category reference. The account category reference (acr) is an artificial code which allows flexibility in linking material types with valuation classes.

“Huh?” I hear you asking. Let’s consider the alternatives.

We could relate the GL account directly to the material type. This would be easy to setup for a few material types, but would take a huge amount of time for many material types, and would be hard to understand if changes needed to be made.

We could use the valuation class, assign the GL account to it, and then assign valuation classes to material types. This is better, since we could for instance have a “Raw Materials” vc and a “Finished Materials” vc and then simply link all the various material types under each category to the valuation class. This would make updates and initial loads easier, but there is still one thing missing, a material type can only be part of one valuation class and can only post to one account.

However, in the real world, a material type may post to different accounts depending on things other than just the material type, such as plant, movement type or indeed any of the factors above.

So, we have an account category reference which is linked to a material type. This acr is then linked with a valuation class and the GL account is linked to the valuation class. So a material type can be linked to one or more valuation classes (and hence GL Accounts) and in turn, a valuation class can be linked to multiple material types (enabling ease of understanding and updates).

Now that you (hopefully) understand that, the actual updates are pretty simple.

Go to transaction: IMG > Materials Management > Valuation and Account Assignment > Account Determination > Account Determination Without Wizard > Define Valuation Classes and begin by defining your valuation classes. Then define your account category references and go back into your valuation classes and assign them (or you could do the acr’s first). Then go into your material types and assign your acr’s to your material types and done! For the moment.

At this point we should consider another factor, the actual business event that is occurring and it’s effect on account determination. This is another area where you have to try and see through the impenetrable fog of terminology.

Each time “something” occurs in the system it produces a “key” for each of the postings that need to be made (i.e. debit and credit). This “key” is entered in our account determination procedure so that postings for credit and debit go to different accounts. Simple aye?

Well when (as far as I understand) the “something” can be called ‘transaction (key)’ or ‘event (key)’ and the “key” can be called ‘value string’, ‘posting rule’ or ‘posting string for values’ and the column header in SAP for the “key” says “Trans”. Fun, fun, fun.

The combinations of movement type and “keys” and how they are determined are all internally programmed by SAP, so we don’t really care. What we do care about is the account modifier or ‘account grouping code’.

This is the topic I spent the most time on, and I’m still not completely clear, so don’t feel bad if you’re confused.

The account grouping code (aka account modification code, modifier or (in SAP) general modifier) is a three character code (which rather oddly has no link with the posting strings (”key”)) which we use to break account determination down by movement type.

For example, by default in SAP,

the system says for movement type 101 and posting key PRD there is no modification.

So the account determination is not different based on movement type.

However, I can enter a code (e.g. AAA) against movement type 101 and posting key PRD and code BBB against movement type 102 and PRD.

Then in ‘Configure Automatic Postings’ when we go into posting key PRD, we will make entries for ‘general modifier’ AAA, account 100000 and BBB of 100001 (there will also need to be an entry for a “blank” modifier which should cover all the other movement types).

So, make sense? Hopefully.

Now you need to go through and for each posting key that we’re concerned with, record each of the defining factors mentioned above (you don’t need to enter them if you’re not using them) and enter a GL account for each permutation.

You should now find that your account determination is working.
I wouldn’t put any money on that promise.

My hope is that having read this guide,
you’re a little bit closer to having your account determination working, and that in conjunction with a number of other resources you’ll get there eventually.



PS: I will be updating this article periodically, and would appreciate your constructive criticism by commenting below.