crmprogrammer38の日記

主にDWHやSalesforceのプログラムメモです。

Java

【Java】Interfaceやabstract classが何となく理解できた時の思い出

最初のプログラム言語はJavaでした。インスタンスやクラス、インターフェースや抽象クラス、キャストなど色々な横文字が大量に出てきて何が何やらわからず、苦労した思い出があります。(当時、WebObjectsというAppleのWebフレームワークを利用していました) …

【Java】JavaのWebServiceライブラリのクライアントプログラムでSOAPメッセージをデバッグする

前に、いくつかのJavaライブラリでSalesforceのSOAP APIを扱うという内容を書きました。 crmprogrammer38.hatenablog.com さらに追記で、上記のJavaライブラリでSOAPメッセージをデバッグするやり方になります。 Axis1.4 log4j.propertiesで指定します。なの…

【Java】「Apache Velocity」と「StringTemplate」の性能を比べてみる

前回StringTemplateの記事を書きましたが、Apache Velocityと性能を比べてみました。 Apache Velocityではまったこと テンプレートの書き方を忘れていて、テンプレートで変数のプロパティを指定する場合getterが必要でした。。 例えば、Apache Velocityのテ…

【Java】「StringTemplate」ライブラリを使ってみました

Javaで、「StringTemplate」のライブラリを使ってみました。 はじめに Javaのテンプレートエンジンは、Apache Velocityを代表として色々なものがあると思います。VelocityはVTLが使いやすいのですが様々な理由でVelocity以外が使いたいときもあると思います…

【Java】beanshellでSalesforceのメタデータ削除ツールを作りました

メタデータを削除したい時があります。 間違えてカスタム項目をたくさん作ってしまった キューを作ると自動で作成されるビューを削除する こんな時にまとめてメタデータを削除できるツールです。 ツールはbeanshellで作成しています。 ダウンロードはこちら…

【Java】beanshellでSalesforceのファイル(添付ファイル、ドキュメント、イベントログ)のエクスポートツールを作りました

SalesforceのバイナリファイルはSOQLで取得することができます。 例えば添付ファイルはAttachmentというオブジェクトから取得できます。 ですが、SOQLでオブジェクトからデータを取得するとbase64エンコードされた文字列となるため、バイナリにデコードして…

【Java】beanshellが使いやすい

Javaでスクリプトを実行する仕組みは色々ありますが、Javaコードがほぼそのまま実行できる点でbeanshellはとても使いやすいなと感じています。(でも、ジェネリクスや、可変長引数は対応してないので、うっかり書いてしまうとエラーの解決に時間がかかります…

【Java】wscでSalesforce APIを使用する

まずはサンプルコード ConnectorConfig connectorConfig = new ConnectorConfig(); String soapEndpoint = "https://login.salesforce.com/services/Soap/u/39.0"; connectorConfig.setAuthEndpoint(soapEndpoint); connectorConfig.setManualLogin(true); c…

【Java】apache cxfでSalesforce APIを使用する

まずはサンプルコード URL wsdlurl = Soap.class.getClassLoader().getResource("/partner.wsdl"); Soap soapBinding = new SforceService(wsdlurl).getSoap(); BindingProvider bp = (BindingProvider)soapBinding; bp.getRequestContext().put(BindingProv…

【Java】wsimportでSalesforce APIを使用する

まずはサンプルコード Soap soapBinding = new SforceService().getSoap(); WSBindingProvider provider = (WSBindingProvider)soapBinding; Map<String, Object> reqContext = provider.getRequestContext(); reqContext.put(WSBindingProvider.ENDPOINT_ADDRESS_PROPERTY, </string,>…

【Java】axis2でSalesforce APIを使用する

まずはサンプルコード String url = "https://login.salesforce.com/services/Soap/u/39.0"; SforceServiceStub soapBinding = new SforceServiceStub(url); Options options = soapBinding._getServiceClient().getOptions(); options.setProperty(HTTPCons…

【Java】axis1.4でSalesforce APIを使用する

まずはサンプルコード SoapBindingStub soapBinding = (SoapBindingStub)new SforceServiceLocator().getSoap(); soapBinding._setProperty(org.apache.axis.transport.http.HTTPConstants.MC_ACCEPT_GZIP , "true"); soapBinding._setProperty(org.apache.a…

【Java】色々なJavaライブラリでSalesforceAPIを使う

SOAP APIのJavaクライアントには、色々なライブラリがあります。それぞれのJavaライブラリでSalesforce APIを使ってみた結果をまとめてみます。 サマリ Java ライブラリ SOAP API Metadata API xsd:intにバインドされる型 データバインディングの性能 Axis1.…