2009年9月12日土曜日

いよいよGeneXus インターナショナルミーティングです

ジェネクサス・ジャパン 横井です。

いよいよ来週9/14からウルグアイにてGeneXus インターナショナル
ミーティングが開催されます。
そして、我々ジェネクサス・ジャパンのメンバーも明日現地へ向けて
出発します。

今年は、GeneXus X Evolution1そしてGeneXus Serverの発表が
目玉となりますが、それ以外にも大小様々なセッションが開かれます。

昨年はブログ(http://blog.genexus.jp)にて、その様子をお伝えしましたが
なかなかリアルタイムにアップする事が出来ませんでした。
なんとしても、その場の雰囲気・熱気を日本の皆さんに伝えたくて
色々考えたのですが、今年はTwitterを使うことにしました。

http://twitter.com/genexusjp

既にTwitterのアカウントをお持ちの方は是非フォローを
まだアカウントをお持ちでない方は是非この機会にアカウント登録
してもらって、フォローを
もちろん、登録せずに上記URLで見るだけでも結構です。

基本的にはリアルタイムで写真付きでアップできますので
会場の人々の様子、セッションのスピーカーの様子、発表のPPTの様子
など、なるべく多くのアップをして、遠く離れた皆様にも臨場感を
持ってもらえるようにできたらと考えています。

是非ご期待ください。

XIXGX-2EN1.jpg



2009年9月8日火曜日

帳票(プロシージャ)にてアトリビュートの内容を改行印刷する方法










アトリビュートが長い文字列型の場合、プロシージャのレイアウトにアトリビュートを貼り付けるだけでは、改行がされません。

改行するためには、以下の手順が必要となります。



1.レイアウト


アトリビュートの代わりに変数を貼り付けます。


printblock.PNG

2.ソース


ソースではGXMLines関数で、折り返したい文字数での行数を取得し、GXGetMLi関数で各行を取得し、文字列を変数にセットし、行単位でPrintコマンドを発行します。





&nlin = GXMLines(LongSizeAttribute, 60)
  if &nlin > 0
   &i = 1
   Do While &i <= &nlin
    &Text = GXGetMLi(LongSizeAttribute, &i, 60)
    Print PB_Report1
    &i += 1
   enddo
  else
   &Text=''
   Print PB_Report1
  endif



2009年9月5日土曜日

デプロイメント方法 - .net版

基礎教育では、GeneXusを使ってビルド・実行するところまではお話しますが、実際の開発・運用局面において、本番環境にどうやってアプリケーションをリリースするのか迄はお話していません。

実際にGeneXusを使って開発し、直面するリリース(デプロイ)作業について手順をまとめましたのでアップします。

まずは、.net版です。



.netジェネレーターの場合、デプロイメントツールは標準でインストールされていません。エクステンションモジュールとして追加インストールする必要があります。


1. デプロイメントツールのダウンロード  ダウンロードはこちらから。http://blog.genexus.jp/files/CSharpXCopyDeployment.zip
  ダウンロードしたzipファイルを任意のフォルダに解凍します。

2. デプロイメントツールのインストール

2-1.「ツール」→「エクステンションマネージャー」を開く

dep1.JPG


2-2.「追加」ボタンをクリック

dep02.JPG

2-3.「ローカル」タブをクリック

dep03.JPG



2-4.ファイルの選択ボタンをクリックし、解凍したCSharpXCopyDeployment.zip.dllファイルを選択し、「OK」ボタンをクリックします。

dep04.JPG



2-5. エクステンションマネージャーにて「CSharpXCopyDeployment」をチェックし、「変更の適用」をクリックします。

dep05.JPG   



2-6.GeneXusを再起動します。



3. デプロイ

3-1.事前準備
 (1)環境
    GeneXus Xでは、基本的な考え方としてジェネレート・デプロイする環境ごとに「環境」を作成・設定します。
    例えば、「開発サーバー」「本番サーバー」と2系統ジェネレーター(デプロイ先)があるのであれば、環境も二つ作成し、それぞれ「Dev」「Release」といった判りやすい名前をつけましょう。
    手順は以下の通りです。
        (1)-a. ナレッジベースナビゲータにて、「設定」→「環境」を右クリックし、新規環境を選択
        (1)-b. ビルドをする時に、対象となる環境を右クリックし、「アクティブにする」を選択



     ※ 本番環境(DB)がGeneXusから直接接続できないケースでは、LAN内のDBを仮の本番DBに見立てて、データベース再編成を実行します。
     ※ この場合、DB再編成プログラムをエクスポートした後、DB接続情報を本番環境の情報に変更します。



4. データベース再編成のエクスポート


4-1.「ツール」→「CSharp Generator」→「Deployment Tools」をクリックし、デプロイメントツールを起動する。


dep06.JPG



4-2.「Export Reorganization」タブをクリック(ディフォルト表示)



dep07.JPG


4-3.「Destination folder」に出力先のディレクトリがディフォルト表示されています。
  ディレクトリ名は「reorgYYYYMD」(YYYYMDはシステム日付)となっています。
  一日に複数回実行する場合は、名前を変更して上書きされないようにしてください。



4-4.「Confirm」ボタンをクリックすると、指定したディレクトリにモジュールがエクスポートされます。


dep08.JPG     



4-5.データベース接続情報の変更
   データベース再編成をエクスポート後にデータベース接続情報を変更したい場合は、「GxConfig.exe」というツールを使います。
「GxConfig.exe」はナレッジベースディレクトリ\ターゲットディレクトリ\web\binに出力されています。
標準的な環境では「C:\Models\ナレッジベース名\CSharpModel\web\bin」になります。

   4-5-1.「GxConfig.exe」をデータベース再編成がエクスポートされたディレクトリにコピーします。

    dep09.JPG



   4-5-2.「client.exe.config」ファイルを「web.config」へリネームします。

    dep10.JPG  


   4-5-3.「GxConfig.exe」を起動すると以下の画面が表示されます。


       dep11.JPG



   4-5-4.上部のコンボボックスにて「Default」を選択すると、ナレッジベースの環境にて設定されていたデータベース接続情報が表示されます。



    dep12.JPG     

   4-5-5.デプロイ先のデータベース接続情報を設定し、「Save」ボタンをクリックします。ユーザー名、パスワードは暗号化されて保存されます。

   4-5-6.「web.config」ファイル名を「client.exe.config」へリネームします。
      編集が終わったら「GxConfig.exe」は削除しても構いません。(データベース再編成処理の実行には影響ありません)

   注記
    ※ ユーザー、パスワード以外の項目のみ変更するのであれば、直接「Client.exe.config」ファイルをエディタで開いて編集・保存する事も可能です。
    ※ SQLServerでWindows認証を使用している場合は、ユーザー・パスワードの変更は必要ありません。(空文字も暗号化し保存されています)







  <datastores>
    <add key="Connection-Default-DBMS" value="sqlserver" />
    <add key="Connection-Default-Port" value="" />
    <add key="Connection-Default-LockTimeout" value="0" />
    <add key="Connection-Default-LockRetryCount" value="10" />
    <add key="Connection-Default-Datasource" value="SERVERNAME\SQL2005" />
    <add key="Connection-Default-User" value="NTgYdf1h5ihuWiTvoLCm2A==" />
    <add key="Connection-Default-Password" value="U0lBHj4leN1tXEjswyrAKQ==" />
    <add key="Connection-Default-DB" value="BillingSystem" />
    <add key="Connection-Default-Opts" value=";Integrated Security=yes;" />
    <add key="Connection-Default-TrnInt" value="1" />
  </datastores>



4-6.データベース再編成の実行
   4-6-1.エクスポートしたファイルを全てデプロイ先のデータベースサーバーもしくはデータベースサーバーにネットワーク的に接続可能なサーバー/PCにコピーします。

   4-6-2.「Reor.exe」を実行します。
      「実行」ボタンをクリックすると、対象データベースに対して、再編成処理が実行されます。

   dep13.JPG



※ 注意1 データベース再編成処理はDDL(Data Define Language)を実行します。つまり、通常のSQL文(DML)の様にロールバックが効きません。従って、何らかの理由で再編成の途中でエラーが発生した場合は、実行前の状態には自動で戻りません。再編成を行う場合は事前に必ずデータベースのバックアップを行ってください。(GeneXusの制約事項ではなく、DBMSの仕様です)


5. webアプリケーションのエクスポート5-1.「ツール」→「CSharp Generator」→「Deployment Tools」をクリックし、デプロイメントツールを起動し、「Web Deployment」タブをクリックする。


dep14.JPG 

 


5-3.「Destination folder」に出力先のディレクトリがディフォルト表示されています。
  ディレクトリ名は「webYYYYMD」(YYYYMDはシステム日付)となっています。
  一日に複数回実行する場合は、名前を変更して上書きされないようにしてください。



















項目

説明

Virtusl Directory

デプロイ先でのIISの仮想ディレクトリ名を指定します。

OverWrite

チェック

既に同じ名前で仮想ディレクトリが存在した場合、設定を上書きします。

非チェック

既に同じ名前で仮想ディレクトリが存在した場合、設定を上書きしません。






5-4.「Confirm」ボタンをクリックすると指定したディレクトリにモジュールがエクスポートされます。




dep15.JPG   

5-5.データベース接続情報の変更
    データベース再編成と同様に、データベース接続情報を変更したい場合は、「GxConfig.exe」を使います。
    WebDeploymentにおける「GxConfig.exe」の実行に関しては、データベース再編成とフォルダ・ファイル構成が違うため、以下の2つの方法があります。
    (1) 「web.config」ファイルをbinフォルダ(GxConfig.exeがあるフォルダ)にコピー(移動)し、GxConfig.exeを起動します。
     この場合、web.configを修正・保存後にbinフォルダからwebフォルダへ再度コピー(移動)する必要があります。

    (2) コマンドプロンプトから「GxConfig.exe」を実行する方法
     コマンドプロンプトを開き、WebDeploymentの出力先ディレクトリに移動します。
      「GxConfig.exe」を相対パスで実行します。


       dep16.JPG    
     この方法の場合、「web.config」ファイルをコピー(移動)する必要がありません。


5-6.Webアプリケーションのデプロイ
   5-6-1.エクスポートしたファイルをディレクトリごとコピーし、デプロイ先のサーバー/PCへ配置します。

   5-6-2.デプロイフォルダにある「createVirtualDirectory.bat」を実行します。


      dep18.JPG

      エクスポート時に指定したVirtusl Directoryで仮想ディレクトリが作成されます。
      又、仮想ディレクトリ作成後、ブラウザが自動的に起動し開発者メニューが表示されます。



最後に

当エントリーのPDF版はこちらです。
デプロイメント方法.net編.pdf