The Managed Metadata Service or Connection is currently not available.

Posted by Alvin You
2015. 4. 17. 12:24 Sharepoint

Sharepoint 2010의 Managed Metadata Service 구성 중 아래와 같은 오류 메시지를 만나게 되면,

아래 방법으로 해결을 해 보세요. 많은 방법들 중 저에게 문제 해결이 되었던 방법입니다.

"The managed Metadata Service or Connection is currently not available. The Application Pool or Managed Metadata Web Service may not have been started. Please Contact your Administrator."

 

Resolution>

Sharepoint 2010 Management Shell을 통해 Initialize-SPResourceSecurity 명령어를 실행시켜 권한관련 설정을 초기화시킵니다.

 

위 명령어 실행 후 정상적으로 Term Store Management Tool이 뜨는 것을 확인할 수 있었습니다.

[PowerShell]Site Collection, SubSite 크기 확인

Posted by Alvin You
2015. 4. 1. 16:13 Sharepoint

아래 Powershell 스크립트를 이용하면 Sharepoint Site Collection의 크기를 GB로 확인 할 수 있습니다.

[결과확인]

 

Site Collection의 전체 크기를 확인했다면, 하위의 Web 의 크기는 어떻게 확인 할 수 있을까요?

아래 스크립트를 통해서 확인할 수 있습니다.

# 모든 SubSite의 크기를 가져옴.

[결과확인]

Sharepoint를 이용한 OneNote 공동 작업

Posted by Alvin You
2015. 3. 31. 15:22 Sharepoint

Office 제품 중 하나인 OneNote를 업무에 활용해 보신 분들은 그 끝없는 매력을 흠뻑 느껴 보셨을겁니다. 이 OneNote를 Sharepoint에 올려서 같이 협업을 한다면 얼마나 편할까요?

지금부터 Sharepoint 공유문서에 OneNote 전자 필기장을 생성하는 방법과 다른 사용자와 함께 공유해서 사용하는 방법을 설명 드리겠습니다.

 

새로 만들기를 눌러 새 전자 필기장을 네트워크에 저장합니다. 그리고 네트워크 위치는 Sharepoint 의 공유 문서 경로를 입력해 주시면 됩니다.

 

전자필기장 만들기 버튼을 누르면 아래 진행창이 뜨면서 Sharepoint 사이트에 전자필기장이 만들어지기 시작합니다.

생성 된 이후에 아래 팝업창과 같이 전자필기장의 링크를 포함시켜 메일을 보낼 수 있는 창이 뜹니다.

링크를 포함시켜 전자 메일 보내기를 누르면, 아웃룩 새 메시지창에 링크정보가 담겨 메일을 보낼 수 있습니다.

Sharepoint 2013 설치 가이드

Posted by Alvin You
2014. 4. 13. 22:03 Sharepoint

Dynamics AX 2012의 Enterprise Portal 구성을 Sharepoint 2013 버전에서 셋팅하기 위해 오랜만에 Sharepoint 2013 설치 과정을 진행해 보았습니다.

역시나 오랜만에 설치를 하다보니 감이 떨어져 몇 가지 오류의 원인을 찾기위해 1~2일의 시간을 소모했지만, 결과적으로는 성공적으로 설치가 되어 이렇게 글을 남길 수 있게 되었습니다.

 

■ 로컬 설치 환경(Stand Alone Envrionment)

  - Windows Server 2008 R2 with SP1

  - MS SQL Server 2012

 

 

 

 

■ 설치 진행 중 발생 이슈

  - 필수 구성 요소 설치 후 반복적인 리부팅 발생 – 해결됨

  - SharePoint 2013 installation error: oserver.msi error code: 1603(0x643)

  참고 URL : http://www.dotnetquest.com/post/2013/02/16/SharePoint-2013-installation-error-oservermsi-error-code-1603(0x643)

 

1. 설치 CD를 넣고 설치 à 소프트웨어 필수 구성 요소 설치를 통해서 사전 설치에 필요한 파일을 들을 설치 할 수 있습니다.

 

2. 사전 설치 파일을 성공적으로 설치 후에 설치 à Sharepoint Server 설치 메뉴를 통해서 본격적인 설치 작업에 들어갈 수 있습니다.

 

3. 설치가 마무리 된 이후에 Sharepoint 제품 구성 마법사 실행을 통해서 Sharepoint 2013 중앙관리에 대한 설정 작업을 마무리 할 수 있습니다.

 

4. 아래 내용은 제품 구성 마법사를 진행하는 화면입니다.

 

 

Adding a calculated field to a grid

Posted by Alvin You
2013. 10. 8. 00:16 Dynamics AX

Enterprise Portal 개발을 진행하면서, AX Grid에 어떻게 하면 Calculated Field를 표시해 줄 수 있을까를 고민하면서 찾은 방법입니다.

첫번째 사용한 방법은 AX 2012에서 새롭게 소개된 View 의 Computed Field를 추가해서 사용하는 방법을 이용했지만, 다른 문제가 있음을 발견 후 다시 고민고민을 하다가 결국 오늘 두번째 방법을 찾았답니다.

두번째 방법은 이미 X++ 개발을 하셨던 분들에게는 쉬운 방법일 수 있겠지만, 저처럼 C#을 접하고 X++을 개발하는 개발자에게는 조금은 생소한 방법이기 때문에 다른 분들과의 공유를 위해서 이곳에 기록을 남겨 봅니다.

이미 만들어져 있는 VendInvoiceTrans 테이블의 display method인 lineAmountInclTax를 Grid상에 표시하는 방법입니다.

1) VendInvoiceTrans 테이블의 lineAmountInclTax display method

image

2) Grid –> New Control –> RealEdit Type의 칼럼 추가

image

3) DataSource, DataMethod 를 각각 아래와 같이 변경

image

4) Enterprise Portal 상에서 추가된 칼럼 정보 확인

A) Grid에서의 칼럼 순서 표기

image

B)앞의 Amount는 새롭게 추가된 lineAmountInclTax 칼럼이며, 뒤의 Amount는 기존의 LineAmount칼럼임

image

Comparision between X++ and C#

Posted by Alvin You
2013. 10. 5. 01:38 Dynamics AX

AX의 개발 언어인 X++과 MS의 대표적인 개발언어인 C#의 비교자료입니다.

같은 Object-Oriented Programming 언어이지만, OOP의 개념을 어떻게 풀어 넣었느냐에 따라 개발 방법이나 사용 방법은 틀려질꺼라 생각됩니다.

Axapta가 AX 2012 버젼이 되면서 MS의 Backoffice 서버 제품군(Sharepoint Server, Project Server)과의 통합에 많은 주력을 한 듯 보입니다.

Enterprise Portal과 Project Module의 추가를 보면 많은 신경을 쓴 듯 보입니다. 아직 국내에는 활발하게 해당 모듈을 이용한 프로젝트가 많지는 않지만, 향후에는 많은 프로젝트들이 생기길 기대해 봅니다.

Abaper들과 어깨를 견주길 바라며, Xppler 여러분 화이팅입니다.

X++
C#
abstract
class
The modifiers public and private are ignored on class declarations.
There is no concept of a namespace grouping of classes. There are no dots (.) in any class names.
The modifiers public and private can be used to modify class declarations. C# also has the keyword internal, which relates to how classes are grouped together in assembly files.
extends
A class declaration can inherit from another class by using the extends keyword.
A colon (:) is used where the key words extends and implements are used in X++.
final
A final method cannot be overridden in a derived class. A final class cannot be extended.
The keyword sealed on a class means the same thing that final means on an X++ class.
implements
A class declaration can implement an interface by using the implements keyword.
(See extends.)
interface
An interface can specify methods that the class must implement.
An interface can specify methods that the class must implement.
new
The new keyword is used to allocate a new instance of a class. Then the constructor is automatically called.
Each class has exactly one constructor, and the constructor is named new. You can decide what parameters the constructor should input.
The new keyword is used to create a new instance of a class. Then the constructor is automatically called.
Constructor methods themselves are not named new; they have the same name as the class.
null
private and protected
The private and protected keywords can be used to modify the declaration of a class member.
The private and protected keywords can be used to modify the declaration of a class member.
public
A method that is not modified with public, protected, or privatehas the default access level of public.
A method that is not modified with public, protected, or private has the default access level of private.
static
A method can be static, but a field cannot.
Both methods and fields can be static.
super
The super keyword is used in a derived class to access the same method on its base class.
void method2()
{
;
// Call method2 method
// on the base class.
super();
}
The base keyword is used in a derived class to access various methods in its base class.
void method2()
{
// Call methods on
// the base class.
base.method2();
base.method3();
}
this
For a call from one instance method to another on the same object, a qualifier for the called method is required. The keyword this is available as a qualifier for the current object.
For a call from one instance method to another on the same object, a qualifier for the called method is not required. However, the this keyword is available as a qualifier for the current object. In practice, the keyword this can be helpful by displaying IntelliSense information.
finalize
The Object class contains the finalize method. The finalize method is not final, and it can be overridden.
The finalize method appears to resemble the System.Object.Finalize method in C#, but in X++ the finalize method has no special meaning of any kind.
An object is automatically removed from memory when the last reference to the object stops referencing the object. For example, this can happen when the last reference goes out of scope or is assigned another object to reference.
The methods Finalize and Dispose are common on some types of classes.
The garbage collector calls the Finalize and Dispose methods when it destroys and object.
main
Classes that are invoked from a menu have their main method called by the system.
Classes that are invoked from a command line console have their Main method called by the system.

Migrate from classic-mode to claims-based authentication

Posted by Alvin You
2013. 9. 24. 22:50 Dynamics AX

$wa = Get-SPWebApplication -Identity "http://alvin"
$wa.Properties["portalsuperuseraccount"] = "rainbowcorp\Administrator"
$wa.Properties["portalsuperreaderaccount"] = "rainbowcorp\Administrator"
$wa.Update()

$wa = Get-SPWebApplication -Identity "http://alvin"
$wa.Properties.Remove("portalsuperuseraccount")
$wa.Properties.Remove("portalsuperreaderaccount")
$wa.Update()

$WebAppName = "http://alvin"
$wa = get-SPWebApplication $WebAppName
$wa.UseClaimsAuthentication = $true
$wa.Update()

$account = "rainbowcorp\Administrator"
$account = (New-SPClaimsPrincipal -identity $account -identitytype 1).ToEncodedString()
$wa = get-SPWebApplication $WebAppName
$zp = $wa.ZonePolicies("Default")
$p = $zp.Add($account,"PSPolicy")
$fc=$wa.PolicyRoles.GetSpecialRole("FullControl")
$p.PolicyRoleBindings.Add($fc)
$wa.Update()

$wa.MigrateUsers($true)

$wa.ProvisionGlobally()