2008年12月18日木曜日

SOQL Questions

Q. Does anyone know an easy way to simulate a SELECT DISTINCT operation in SOQL?
Also, how do you check for NULL in a WHERE clause. I know IS NULL does not work?

A. SELECT Id FROM CASE WHERE Id <> null
or
SELECT Id FROM CASE WHERE Id = null

don't think there's anything like distinct though

http://community.salesforce.com/sforce/board/message?board.id=NET_development&message.id=2406&query.id=8066#M2406




Q. Join
Accessing Query Results from a Relationship Query from the Partner WSDL with Axis for Java

http://wiki.apexdevnet.com/index.php/Accessing_Query_Results_from_a_Relationship_Query_from_the_Partner_WSDL_with_Axis_for_Java







Q. Update many rows

sql = "select id from Product2 where ProductCode like '%.jp%' and Family <> 'blog' "
query_result = client.query( sql )

if ( query_result['records'].__len__() < 1 ):
self.response.out.write('no product found with : %s ' % sql )
else :
products = query_result['records']
for product in products:
product['Family'] = 'blog'
results = client.update( product )

self.response.out.write( results )
if results[0]['success'] :
self.response.out.write( 'updated. ' )
else:
self.response.out.write( results[0]['errors'] )
self.response.out.write( 'Error. ' )

2008年12月17日水曜日

Cannot build indexes that are in state ERROR.

Uploading index definitions.
Error 400: --- begin server output ---
Cannot build indexes that are in state ERROR.

To vacuum and rebuild your indexes:
1. Create a backup of your index.yaml specification.
2. Determine the indexes in state ERROR from your admin console: http://appengine.google.com/datastore/indexes?&app_id=blog-editor
3. Remove the definitions of the indexes in ERROR from your index.yaml file.
4. Run "appcfg.py vacuum_indexes your_app_dir/"
5. Wait until the ERROR indexes no longer appear in your admin console.
6. Replace the modified version of your index.yaml file with the original.
7. Run "appcfg.py update_indexes your_app_dir/"
--- end server output ---
Your app was updated, but there was an error updating your indexes. Please retry later with appcfg.py update_indexes.




C:\google>appcfg.py vacuum_indexes blog-editor/
Fetching index definitions diff.
This index is no longer defined in your index.yaml file.

ancestor: true
kind: BlogUrlYm
properties: []


Are you sure you want to delete this index? (N/y/a): y
This index is no longer defined in your index.yaml file.

ancestor: true
kind: Blog
properties: []


Are you sure you want to delete this index? (N/y/a): y
This index is no longer defined in your index.yaml file.

ancestor: true
kind: Stock
properties: []


Are you sure you want to delete this index? (N/y/a): y
This index is no longer defined in your index.yaml file.

ancestor: true
kind: Img
properties: []


Are you sure you want to delete this index? (N/y/a): y
This index is no longer defined in your index.yaml file.

kind: Blog
properties:
- direction: desc
name: ym


Are you sure you want to delete this index? (N/y/a): y
This index is no longer defined in your index.yaml file.

ancestor: true
kind: Timeline
properties: []


Are you sure you want to delete this index? (N/y/a): y
Deleting selected index definitions.

C:\google>appcfg.py update_indexes blog-editor/
Uploading index definitions.

2008年12月16日火曜日

ASSETS / 納入商品 Force.com

Account - Assset - Product2

ASSETS / 納入商品
とは?
会社が販売する品目が商品であるのに対し、
納入商品とは、販売品のシリアル番号、購入日、その他の情報なども含め、
顧客が購入した特定の商品を表します。
組織における納入商品の使用方法によっては、顧客が所有する競合商品や
自社商品のバージョンを表すこともあります。

組織で商品を有効にした場合、その組織では納入商品が自動的に有効になります。
ただし、ユーザが納入商品を使用するには、まず、
システム管理者が自身の組織をカスタマイズする必要があります。

取引先、取引先責任者、および商品ページレイアウトに納入商品関連リストを追加します。








2008年12月11日木曜日

cloud to cloud

http://cloud-cloud.appspot.com/


Error: Method Not Allowed

The request method GETis inappropriate for the URL /login.


local の SDK では問題なく動作していた
Force.com for Google App Engine 
も実際に cloud にupload してみると、動作せず。
app.yaml  の secure: always で hppts にしているためかなのかと
思ったが、 どうやら static 静的な html から post している部分が
原因であるようで、 template の html を利用するようにしたところ
cloud でも無事動作した。


2008年12月10日水曜日

Force.com for Google App Engine 日本語

日本語を含んだ contact を登録しようとしたところ、
正しく登録できなかったが、

static/create_contract.py に #!-*- coding:utf-8 -*- を追加し
static/create_contract_input.html に以下を追加することで
<meta equiv="Content-Type" content="text/html; charset=utf-8">
登録することができた。







Account Lookup Sample

Enter your credentials:

Username:
Password:

Enter an account name:

     

Found 1 accounts:

Blog-Editor [View Info] 

Account Info:

Name: Blog-Editor 
ID: 0018000000MwqAqAAJ 
Phone: 123456789 
Web Site: 





Create Contact Sample

Enter your credentials:

Username:
Password:

Enter contact info:

First Name:Phone:
Last Name:Email:






Force.com for Google App Engine



Salesforce.com announces Force.com for App Engine

セールスフォース、「Google App Engine」と連携を可能に
クラウド・コンピューティング分野での提携を拡大

(2008年12月09日)

http://www.computerworld.jp/topics/cloud/129329.html


http://googleappengine.blogspot.com/2008/12/salesforcecom-announces-forcecom-for.html
http://developer.force.com/appengine




1.  JOIN DFC





2. Download and Install

http://code.google.com/p/force-app-engine/downloads/list




3. Start Application

c:\google> dev_appserver.py force-app-engine
Force.com for Google AppEngine

Overview

This toolkit enables developers of Google AppEngine to make calls to the Force.com web services API. The form of the toolkit is a python module code-named "BeatBox". Within this module is the main PythonClient class that has methods that coorespond to each web service api call.

Below are links to the samples that come with this toolkit. For more information, visit the Force.com Toolkit for Google AppEngine page at the Developer Force website.

Samples:

  • Simple Login - Illustrates a simple login to Force.com from a Google AppEngine page
  • Account Lookup - Illustrates querying data from Force.com
  • Create Contact - Illustrates inserting data into Force.com
Testing:
  • Unit Test - Test the basics of the library, including query, create, update and delete from Force.com using the SOAP API


Simple Demo Sample

Enter your Force.com credentials:

Username:
Password:


Simple Login Sample

Login Failed

Your login failed. Please check your username and password as well as your IP range restrictions. Error details:

Error Code: LOGIN_MUST_USE_SECURITY_TOKEN 
Error Text: LOGIN_MUST_USE_SECURITY_TOKEN: ユーザ名、パスワード、セキュリティトークンが無効か、ユーザがロックされています。新しい場所からログインしていますか? 貴社の信頼済みネットワーク外からデスクトップクライアントまたは API 経由で Salesforce へアクセスする場合、パスワードにセキュリティトークンを追加してログインする必要があります。新しいセキュリティトークンは、Salesforce (http://www.salesforce.com/jp/) にログインし、[設定] | [私の個人情報] | [セキュリティトークンのリセット] をクリックして入手します。





Simple Login Sample

Login Succeeded

Your login was successful. Below are your session details:

UserId: 005800xxxxxxxx
Server URL: https://na6-api.salesforce.com/services/Soap/u/14.0/511700D800000xxxx
Session Id: 511700D80000000M5IC!ARoAQAnStyOYcjTGD70Ct3cWG2UFx3NdKvA


2008年12月8日月曜日

image drag and drop and tipmage



Query UI Draggablesで簡単ドラッグドロップ


src="/javascript/jquery/jquery-1.2.6.min.js"
src="/javascript/Tipmage-1.0.js"

src="/javascript/jquery/jquery.dimensions.js"
src="/javascript/jquery/ui.mouse.js"
src="/javascript/jquery/ui.draggable.js"
src="/javascript/jquery/ui.draggable.ext.js"





http://www.museum-in-cloud.com/index.php?id=1001&option=tipmage&Itemid=1000
http://urlencode.net/result.cgi

MacOS Sequoia で Apache+PHP の再設定

 新しいXcodeが使いたかったので MacOS15(Sequoia) にアップグレードしたところ、やはりApacheでPHPが動かなくなっていた。 結論としては brew, openssl, php, httpd を全て再度インストールしたところ動くようになった。 以下、作業ロ...