2012年8月16日 星期四

Windows server backup error



記錄檔名稱:         Application
來源:            Application Error
日期:            2012/8/17 上午 08:48:54
事件識別碼:         1000
工作類別:          (100)
等級:            錯誤
關鍵字:           傳統
使用者:           不適用
電腦:            SBSDB.motorpro-sbs.local
描述:
失敗的應用程式名稱: wbengine.exe,版本: 6.1.7601.17514,時間戳記: 0x4ce79951
失敗的模組名稱: wbengine.exe,版本: 6.1.7601.17514,時間戳記: 0x4ce79951
例外狀況碼: 0xc0000005
錯誤位移: 0x000000000010ffdf
失敗的處理程序識別碼: 0xa1c
失敗的應用程式開始時間: 0x01cd7c1201d07b69
失敗的應用程式路徑: C:\Windows\system32\wbengine.exe
失敗的模組路徑: C:\Windows\system32\wbengine.exe
報告識別碼: 51908e14-e805-11e1-ab82-e61f1353ca53
事件 Xml:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
  <System>
    <Provider Name="Application Error" />
    <EventID Qualifiers="0">1000</EventID>
    <Level>2</Level>
    <Task>100</Task>
    <Keywords>0x80000000000000</Keywords>
    <TimeCreated SystemTime="2012-08-17T00:48:54.000000000Z" />
    <EventRecordID>76970</EventRecordID>
    <Channel>Application</Channel>
    <Computer>SBSDB.motorpro-sbs.local</Computer>
    <Security />
  </System>
  <EventData>
    <Data>wbengine.exe</Data>
    <Data>6.1.7601.17514</Data>
    <Data>4ce79951</Data>
    <Data>wbengine.exe</Data>
    <Data>6.1.7601.17514</Data>
    <Data>4ce79951</Data>
    <Data>c0000005</Data>
    <Data>000000000010ffdf</Data>
    <Data>a1c</Data>
    <Data>01cd7c1201d07b69</Data>
    <Data>C:\Windows\system32\wbengine.exe</Data>
    <Data>C:\Windows\system32\wbengine.exe</Data>
    <Data>51908e14-e805-11e1-ab82-e61f1353ca53</Data>
  </EventData>
</Event>


解决:在命令提示字元(管理者權限)
Wbadmin delete catalog
作用:删除wbadmin無系統狀態訊息的備份訊息
執行後,再打開Windows Server Backup恢復正常。



2012年8月9日 星期四

BOM T-SQL


assy_nbr為父件
item_nbr為子件

CREATE PROC bom_tst
AS
DECLARE @t TABLE(assy_nbr varchar(20),Level int,Path varchar(8000))
DECLARE @l int
SET @l=0
INSERT @t SELECT DISTINCT assy_nbr,@l,RIGHT(SPACE(20)+assy_nbr,20)
FROM inv_bom a
WHERE NOT EXISTS(
SELECT * FROM inv_bom WHERE item_nbr=a.assy_nbr)
WHILE @@ROWCOUNT>0
BEGIN
SET @l=@l+1
INSERT @t SELECT a.item_nbr,@l,b.Path+RIGHT(SPACE(20)+a.item_nbr,20)
FROM inv_bom a,@t b
WHERE a.assy_nbr=b.assy_nbr AND b.Level=@l-1
END
SELECT assy_nbr=CASE Level WHEN 0 THEN '' ELSE '|'+REPLICATE('-',Level) END+assy_nbr,
Level
FROM @t
ORDER BY Path
GO

2012年8月2日 星期四

實體機轉虛擬錯誤


僅適用於XP及2003
執行批次檔如下:

cd /d %windir%\system32
echo.
net stop vss
net stop swprv
regsvr32 ole32.dll
regsvr32 oleaut32.dll
regsvr32 /i eventcls.dll
regsvr32 vss_ps.dll
vssvc /register
regsvr32 /i swprv.dll
regsvr32 es.dll
regsvr32 stdprov.dll
echo --- vssui.dll is only for Windows 2003. Ignore this error on XP
regsvr32 vssui.dll
regsvr32 msxml.dll
regsvr32 msxml3.dll
echo --- msxml4.dll is optional and thus may fail. Ignore this error
regsvr32 msxml4.dll
pause

參考:http://www.flyingpenguin.com/?p=5149

Ubuntu使用vi遇到的問題

在Ubuntu使用VI編輯時,發現方向鍵會跑出ABCD跟Backspacec無作用
解法:
             1.在HOME底下,新增一檔案(.vimrc)
             2.加入這兩行內容 set nocompatible
                                           set backspace=2
             3.存檔後離開

安裝SAP遇到的問題

1.在安裝SQL server 的時候,collation必須選擇SQL_Latin1_General_CP850_BIN2
解法:重新安裝SQL server


2.安裝完一直登不進
解法:APServer要打開TCP:3200-3999

Solution Manager Key ABAP Program


REPORT  ZSLMKEY.
types: begin of dswpclientkey,
         INSTNO type num10,
         DBID(3),
         BUNDLE_ID(8),
         SERVICE_KEY(40),
       end of dswpclientkey.
*data: dswpclientkey_w type standard table of dswpclientkey.
DATA: P_VALUE(10),
      P_INSTNO(10).
PARAMETERS: P_SID(3),
             P_SYSNO(2),
             P_SERVER(15).
START-OF-SELECTION.
  PERFORM GET_SP_VALUE USING P_SID
                             P_SYSNO
                             P_SERVER
                             P_INSTNO
                    CHANGING P_VALUE.
END-OF-SELECTION.
  WRITE P_VALUE.
*&---------------------------------------------------------------------*
*&      Form  get_sp_value
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_PF_SID  text
*      -->P_PF_SYSNO  text
*      -->P_PF_SERVER  text
*      <--P_PF_VALUE  text
*----------------------------------------------------------------------*
FORM get_sp_value USING    P_PF_SID
                           P_PF_SYSNO
                           P_PF_SERVER
                           P_PF_INSTNO
                  CHANGING P_PF_VALUE.
  CONSTANTS: lc_part_len TYPE i VALUE 5,
             lc_pw_len   TYPE i VALUE 10,
             lc_allowed_chars(38) TYPE c VALUE
             '-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_'.
  data: lf_string(20)        type c,
        lf_key               type i,
        ls_key               type dswpclientkey,
        lf_part(lc_part_len) type c,
        lf_finalf(lc_pw_len) type c,
        lf_finalx            type xstring,
        lf_xbuffer           type xstring,
        lf_opf(10)           type c,
        lf_langu             like sy-langu,
        lf_subrc             like sy-subrc,
        lf_len               type i,
        lo_conv_to_x         TYPE REF TO cl_abap_conv_out_ce.
  clear: lf_string, lf_finalx, lf_opf.
  concatenate p_pf_sid p_pf_sysno p_pf_server into lf_string.
* Large letters only
  translate lf_string to upper case.
  lf_langu = sy-langu.
  SET LOCALE LANGUAGE 'E'.
  lo_conv_to_x = cl_abap_conv_out_ce=>create( encoding = '1100' ).
  lf_len = STRLEN( lf_string ).
  IF lf_string(lf_len) CN lc_allowed_chars.
  else.
* Fold the input string to a lc_part_len long string
    WHILE lf_len > 0.
      lf_part = lf_string(lc_part_len).
      SHIFT lf_string BY lc_part_len PLACES.
      lf_len = STRLEN( lf_string ).
      CALL METHOD lo_conv_to_x->reset.
      CALL METHOD lo_conv_to_x->write( data = lf_part n = -1 ).
      lf_xbuffer = lo_conv_to_x->get_buffer( ).
      lf_finalx = lf_finalx BIT-XOR lf_xbuffer.
    ENDWHILE.
    lf_key = 12.
    PERFORM scramble USING      lf_finalx
                                lf_key
                                lc_part_len
                       CHANGING lf_finalf
                                lf_subrc.
    if not lf_finalf is initial.
      p_pf_value = lf_finalf.
      ls_key-dbid        = p_pf_sid.
      ls_key-instno      = p_pf_instno.
      ls_key-bundle_id   = 'SM_KEY'.
      ls_key-service_key = lf_finalf.
      if not p_pf_instno is initial.
*        insert dswpclientkey_w from ls_key.
        if sy-subrc <> 0.
*          update dswpclientkey_w from ls_key.
        endif.
      endif.
    else.
      clear p_pf_value.
    endif.
  endif.
ENDFORM.                    " get_sp_value
*&---------------------------------------------------------------------*
*&      Form  scramble
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_LF_FINALX  text
*      -->P_LF_KEY  text
*      -->P_LC_PART_LEN  text
*      <--P_LF_finalf  text
*      <--P_LF_SUBRC  text
*----------------------------------------------------------------------*
FORM scramble USING    iv_xstring TYPE xstring
                       iv_key TYPE i
                       iv_src_len TYPE i
              CHANGING lf_finalf
                       lf_subrc LIKE sy-subrc.
  CONSTANTS: lc_max_len    TYPE i VALUE 20,
             lc_mask(4)    TYPE x VALUE '0000003F',
             lc_random(64) TYPE x VALUE
                      'F0ED53B83244F1F876C67959FD4F13A2' &
                      'C15195EC5483C234774943A27DE26596' &
                      '5E5398789A17A33CD383A8B829FBDCA5' &
                      '55D702778413ACDDF9B83116610E6DFA'.
  DATA: lv_key_index(4)  TYPE x,
        lv_rand_index(4) TYPE x,
        lv_xkey(4)       TYPE x,
        lv_xkey_shl_1(4) TYPE x,
        lv_xkey_shr_5(4) TYPE x,
        lv_scramble_byte TYPE x,
        lv_dest(lc_max_len) TYPE x,
        lv_index         TYPE i,
        lv_len           TYPE i.
  CLEAR lf_subrc.
  IF iv_src_len EQ 0. EXIT. ENDIF.
  lv_len = XSTRLEN( iv_xstring ).
  IF iv_src_len GT lc_max_len OR
     iv_src_len GT lv_len.
    lf_subrc = 2.
    EXIT.
  ENDIF.
  lv_xkey       = iv_key.
  lv_xkey_shl_1 = iv_key * 2.
  lv_xkey_shr_5 = iv_key DIV 32.
  lv_rand_index = lv_xkey BIT-XOR lv_xkey_shr_5 BIT-XOR lv_xkey_shl_1.
  lv_rand_index = lv_rand_index BIT-AND lc_mask.
  lv_index = 0.
  DO iv_src_len TIMES.
    CATCH SYSTEM-EXCEPTIONS compute_int_times_overflow = 1.
      lv_key_index = ( iv_key * lv_index * lv_index ) - lv_index.
    ENDCATCH.
    IF sy-subrc <> 0.
      lf_subrc = 1.
      EXIT.
    ENDIF.
    lv_scramble_byte = lc_random+lv_rand_index(1) BIT-XOR
                       lv_key_index+3(1).
    lv_dest+lv_index(1) = iv_xstring+lv_index(1) BIT-XOR
                          lv_scramble_byte.
    lv_index = lv_index + 1.
    lv_rand_index = lv_rand_index + 1.
    lv_rand_index = lv_rand_index BIT-AND lc_mask.
  ENDDO.
  IF lf_subrc <> 0.
    EXIT.
  ENDIF.
  WRITE lv_dest(iv_src_len) TO lf_finalf.
ENDFORM.                    " scramble

參考:http://www.cnblogs.com/qiangsheng/archive/2007/08/16/858271.html

SAP license key & developer access key

T-Code:slicense
新增LicenseKey之後到System→Status看Install Number是否還為INITIAL,若還是請重啟SAP

Tool:zapgui - generate sap r3 license keys.exe
SAP Version:System→Status的Component version