SharePointで、サイトコレクションの機能をアクティブ化するのに失敗する場合
SharePointで、サイトコレクションの機能をアクティブ化しようとすると
機能 'NintexWorkflowContentTypeUpgrade' (ID: 86c83d16-605d-41b4-bfdd-c75947899ac7) を範囲 'http://dionysos/sites/itservice' でアクティブ化できませんでした。
というメッセージが出て失敗した。
どうも権限周りで問題がある場合に発生するようだ。
http://archive.sharepoint.orivers.jp/forums/thread/1055.aspxの下の方にある
海外のサイトで書かれていた方法を試したところ、うまくいきました。 Xaval様のおっしゃる方法と根本は同じですが、 お手軽な方法です。 アプリケーションプールのアカウントはいじらずに、Web アプリケーションが側のアプリケーションプールを 一時的に [SharePoint Central Administration v3] に変更してアクティブ化するという方法です。 利点は「戻すのが楽」です w
のように、一時的にiisの管理ツール上でSharePoint-80のアプリケーションプール(Webサイトのプロパティ→ホームディレクトリで設定)をSharePoint Central Administration v3に設定すると問題なくアクティブ化することができた。
SharePointで承認されるまで公開しない方法
SharePointではドキュメントのバージョン管理を利用して下書き(未承認状態)のドキュメントを、読み取り権限しかないユーザには公開しないよう制限することができる(作成者および承認権限を持つユーザにのみ閲覧できるようにすることもできる)。
ドキュメントのバージョンはメジャー(承認済のもの)とマイナー(未承認のもの)に分けて管理することができ、読み取り権限しかないユーザにはメジャーのものだけを公開することによって上記を実現している。
Nintex workflow 2007のRequest approvalタスク実行時のエラー
SharePointのシステムアカウント(SHAREPOINT\system)でNintex workflowのRequest approvalのタスクを実行(承認or却下)すると下記のエラーが発生する。
Nintex Workflow; Build: 11000 (http://dev-003.stratecht.local/sites/itservice/_layouts/NintexWorkflow/preview.aspx?ListId=65bdf310-d176-46cc-86c5-b2cdc62dba8b&ItemId=9&InstanceId=ee0f8bfc-9dd1-4769-8dd1-29065da6225c) Error in request approval action. System.ArgumentNullException: 値を Null にすることはできません。 パラメータ名: String 場所 System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal) 場所 System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info) 場所 Nintex.Workflow.Activities.ApprovalActivityInternal2.ChildCompleted(Object sender, ReplicatorChildEventArgs e) 場所 System.Workflow.ComponentModel.Activity.RaiseGenericEvent[T](DependencyProperty dependencyEvent, Object sender, T e) 場所 System.Workflow.Activities.ReplicatorActivity.HandleStatusChange(ActivityExecutionContext executionContext, ActivityExecutionStatusChangedEventArgs e, ReplicatorSubscriber subscriber) 場所 System.Workflow.ComponentModel.ActivityExecutorDelegateInfo`1.ActivityExecutorDelegateOperation.Run(IWorkflowCoreRuntime workflowCoreRuntime) 場所 System.Workflow.Runtime.Scheduler.Run()
原因は操作ユーザがシステムアカウントであること。
他のユーザであれば問題なく実行できる。なぜシステムアカウントだけダメなのかは不明。
権限の問題ではなかった。同時に下記のエラーが発生するため、メールアドレスの設定に問題があるのかもしれない。
システムアカウントにメールアドレスを設定する方法が分からなかったため、そちらについては調査していない。
Nintex Workflow; Build: 11000 WorkflowHistoryEventReceiver failed. System.ArgumentException: Workflow initiator has no email address. 場所 Nintex.Workflow.Features.WorkflowHistoryEventReciever.ItemAdded(SPItemEventProperties properties)
SharePointでログインユーザがシステムアカウントとして認識される
atword.jp - このウェブサイトは販売用です! - レンタル テンプレート 無料ブログ ワードプレス サーバ リソースおよび情報によると、
- アプリケーションプールアカウントに登録したユーザ
- ファームを構築したユーザ
- BUILTIN\administrator
の場合、普通のドメインユーザでSharePointにログインしてもシステムアカウント(SharePoint\system)として認識される。
そのユーザをシステムアカウントから外すためには下記の方法で別のアカウントをシステムアカウントとして登録すればよい。
http://malcan.com/EN/Lists/Tips%20and%20tricks/DispForm.aspx?ID=16
Plan for administrative and service accounts in SharePoint Server | Microsoft Docs
test
testです
iPhone SDKレシピ3:UIProgressViewの使い方
ポイント
UIProgressViewのprogressプロパティは、ある処理をしているスレッド中で変更しても、その処理が終了するまで画面に反映されない。
そこで、performSelectorInBackground:withObject:メソッドを利用して、バックグラウンドでprogressプロパティを変更する。
ソース
// tmpViewController.h #import <UIKit/UIKit.h> @interface tmpViewController : UIViewController { IBOutlet UIProgressView *progressBar; } @property(nonatomic, retain) IBOutlet UIProgressView *progressBar; - (IBAction)start; - (void) progress:(NSNumber *)amount; @end // tmpViewController.m #import "tmpViewController.h" @implementation tmpViewController @synthesize progressBar; - (IBAction)start { progressBar.progress = 0; for (int i=0; i<100; i++) { [self performSelectorInBackground:@selector(progress:) withObject:[NSNumber numberWithFloat:0.01f]]; [NSThread sleepForTimeInterval:0.1f]; } } // バックグラウンドでprogressを変更 - (void)progress:(NSNumber *)amount { progressBar.progress += [amount floatValue]; } - (void)dealloc { [progressBar release]; [super dealloc]; } @end