Project

General

Profile

1
<RESOURCE_PROFILE>
2
	<HEADER>
3
		<RESOURCE_IDENTIFIER value="637baddc-8c95-479d-8763-9847718d79f5_VHJhbnNmb3JtYXRpb25SdWxlRFNSZXNvdXJjZXMvVHJhbnNmb3JtYXRpb25SdWxlRFNSZXNvdXJjZVR5cGU="/>
4
		<RESOURCE_TYPE value="TransformationRuleDSResourceType"/>
5
		<RESOURCE_KIND value="TransformationRuleDSResources"/>
6
		<RESOURCE_URI value=""/>
7
		<DATE_OF_CREATION value="2018-06-04T11:15:30+00:00"/>
8
	</HEADER>
9
	<BODY>
10
		<CONFIGURATION>
11
			<IMPORTED/>
12
			<SCRIPT>
13
				<TITLE>SNSF to DB</TITLE>
14
				<CODE>
15
					<![CDATA[
16
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
17

    
18
    <xsl:param name="varDatasourceId"/>
19
    <xsl:param name="namespacePrefix" select="string('snsf________')"/>
20
    <xsl:param name="quote">"</xsl:param>
21

    
22
    <xsl:template match="/">
23
        <record>
24

    
25
            <xsl:copy-of select=".//*[local-name()='header']"/>
26
            <metadata>
27
                <ROWS>
28
                    <xsl:if test="string-length(normalize-space(.//column[@name='Project Title'])) &gt; 0 and string-length(normalize-space(.//column[@name='Project Number'])) &gt; 0">
29

    
30
                        <xsl:variable name="projectId" select="concat($namespacePrefix, '::', normalize-space(.//column[@name='Project Number']))"/>
31

    
32
                        <xsl:variable name="orgId" select="concat($namespacePrefix, '::', translate(normalize-space(.//column[@name='Institution']), ' ,.', '___'))"/>
33

    
34
                        <xsl:variable name="startDate" select=".//column[@name='Start Date']"/>
35
                        <xsl:variable name="endDate" select=".//column[@name='End Date']"/>
36
                        <xsl:variable name="quot">"</xsl:variable>
37
                        <ROW table="projects">
38
                            <FIELD name="_dnet_resource_identifier_">
39
                                <xsl:value-of select="$projectId"/>
40
                            </FIELD>
41
                            <FIELD name="id">
42
                                <xsl:value-of select="$projectId"/>
43
                            </FIELD>
44
                            <FIELD name="code">
45
                                <xsl:value-of select="normalize-space(.//column[@name='Project Number String'])"/>
46
                            </FIELD>
47
                            <FIELD name="startdate" type="date" format="dd.MM.yyyy">
48
                                <xsl:value-of select="$startDate"/>
49
                            </FIELD>
50
                            <FIELD name="enddate" type="date" format="dd.MM.yyyy">
51
                                <xsl:value-of select="$endDate"/>
52
                            </FIELD>
53
                            <FIELD name="title">
54
                                <xsl:value-of select=".//column[@name='Project Title']"/>
55
                            </FIELD>
56
                            <xsl:if test="number(.//column[@name='Approved Amount'])">
57
                                <FIELD name="optional1">
58
                                	<xsl:value-of select=".//column[@name='Approved Amount']"/>
59
                            	</FIELD>
60
                            </xsl:if>
61
                            <FIELD name="keywords">
62
                                <xsl:value-of select=".//column[@name='Discipline Name Hierarchy']"/>
63
                            </FIELD>
64
                            <!-- Commented jsonextrainfo because of bug in SNSF mining algorithm #2456#note-25
65
                            <!--
66
                            <FIELD name="jsonextrainfo">
67
                                <xsl:value-of select="concat('{',$quot,'Discipline',$quot,':',$quot,.//column[@name='Discipline Name'],$quot,'}')"/>
68
                            </FIELD>
69
                            -->
70
                            <FIELD name="acronym"></FIELD>
71
                            <FIELD name="provenanceactionclass">sysimport:crosswalk:entityregistry</FIELD>
72
                            <FIELD name="provenanceactionscheme">dnet:provenanceActions</FIELD>
73
                            <FIELD name="collectedfrom">
74
                                <xsl:value-of select="$varDatasourceId"/>
75
                            </FIELD>
76
                            <!-- <FIELD name="???"><xsl:value-of select=".//AbstractNarration" /></FIELD> -->
77
                            <xsl:variable name="personName" select="normalize-space(.//column[@name='Responsible Applicant'])"/>
78
                            <xsl:if test="string-length($personName) &gt; 0">
79
                                <FIELD name="contactfullname">
80
                                    <xsl:value-of select="$personName"/>
81
                                </FIELD>
82
                            </xsl:if>
83
                        </ROW>
84
                        <xsl:if test="string-length(.//column[@name='Institution']) &gt; 0">
85
                        <ROW table="dsm_organizations">
86
                            <FIELD name="_dnet_resource_identifier_">
87
                                <xsl:value-of select="$orgId"/>
88
                            </FIELD>
89
                            <FIELD name="id">
90
                                <xsl:value-of select="$orgId"/>
91
                            </FIELD>
92
                            <FIELD name="legalname">
93
                                <xsl:value-of select=".//column[@name='Institution']"/>
94
                            </FIELD>
95
                            <FIELD name="country">
96
                                <xsl:value-of select=".//column[@name='Institution Country']"/>
97
                            </FIELD>
98
                            <FIELD name="collectedfrom">
99
                                <xsl:value-of select="$varDatasourceId"/>
100
                            </FIELD>
101
                            <FIELD name="provenanceaction">sysimport:crosswalk:entityregistry</FIELD>
102

    
103
                            <FIELD name="optional1">
104
                                <xsl:value-of select=".//column[@name='University']"/>
105
                            </FIELD>
106
                        </ROW>
107

    
108
                        <ROW table="project_organization">
109
                            <FIELD name="_dnet_resource_identifier_">
110
                                <xsl:value-of select="concat($projectId, '@@', $orgId)"/>
111
                            </FIELD>
112

    
113
                            <FIELD name="project">
114
                                <xsl:value-of select="$projectId"/>
115
                            </FIELD>
116
                            <FIELD name="resporganization">
117
                                <xsl:value-of select="$orgId"/>
118
                            </FIELD>
119
                            <FIELD name="semanticclass">coordinator</FIELD>
120
                        </ROW>
121
                        </xsl:if>
122
                        <xsl:variable name="p0" select="normalize-space(.//column[@name='Funding Instrument Hierarchy'])"/>
123
                        <xsl:variable name="p1" select="normalize-space(.//column[@name='Funding Instrument'])"/>
124

    
125
                        <xsl:variable name="fundingId">
126
                            <xsl:choose>
127
                                <xsl:when test="(string-length($p0) &gt; 0) and (string-length($p1) &gt; 0)">
128
                                    <xsl:value-of select="concat($namespacePrefix, '::SNSF::', $p0, '::', $p1)"/>
129
                                </xsl:when>
130
                                <xsl:when test="string-length($p0) &gt; 0">
131
                                    <xsl:value-of select="concat($namespacePrefix, '::SNSF::', $p0)"/>
132
                                </xsl:when>
133
                                <xsl:when test="string-length($p1) &gt; 0">
134
                                    <xsl:value-of select="concat($namespacePrefix, '::SNSF::', $p1)"/>
135
                                </xsl:when>
136
                            </xsl:choose>
137
                        </xsl:variable>
138

    
139
                        <ROW table="project_fundingpath">
140
                            <FIELD name="_dnet_resource_identifier_">
141
                                <xsl:value-of select="concat(normalize-space($fundingId),'@@', $projectId)"/>
142
                            </FIELD>
143
                            <FIELD name="funding">
144
                                <xsl:value-of select="normalize-space($fundingId)"/>
145
                            </FIELD>
146
                            <FIELD name="project">
147
                                <xsl:value-of select="$projectId"/>
148
                            </FIELD>
149
                            <FIELD name="startdate" type="date" format="dd.MM.yyyy">
150
                                <xsl:value-of select="$startDate"/>
151
                            </FIELD>
152
                            <FIELD name="enddate" type="date" format="dd.MM.yyyy">
153
                                <xsl:value-of select="$endDate"/>
154
                            </FIELD>
155
                        </ROW>
156

    
157
                    </xsl:if>
158
                </ROWS>
159
            </metadata>
160
        </record>
161
    </xsl:template>
162

    
163
</xsl:stylesheet>
164
]]>
165
				</CODE>
166
			</SCRIPT>
167
		</CONFIGURATION>
168
		<STATUS/>
169
		<SECURITY_PARAMETERS>SECURITY_PARAMETERS</SECURITY_PARAMETERS>
170
	</BODY>
171
</RESOURCE_PROFILE>
(21-21/24)