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="optional2">
71
                                <xsl:value-of select="concat('{',$quot,'Discipline',$quot,':',$quot,.//column[@name='Discipline Name'],$quot,'}')"/>
72
                            </FIELD>
73
                            <FIELD name="acronym"></FIELD>
74
                            <FIELD name="provenanceactionclass">sysimport:crosswalk:entityregistry</FIELD>
75
                            <FIELD name="provenanceactionscheme">dnet:provenanceActions</FIELD>
76
                            <FIELD name="collectedfrom">
77
                                <xsl:value-of select="$varDataSourceId"/>
78
                            </FIELD>
79
                            <!-- <FIELD name="???"><xsl:value-of select=".//AbstractNarration" /></FIELD> -->
80
                            <xsl:variable name="personName" select="normalize-space(.//column[@name='Responsible Applicant'])"/>
81
                            <xsl:if test="string-length($personName) &gt; 0">
82
                                <FIELD name="contactfullname">
83
                                    <xsl:value-of select="$personName"/>
84
                                </FIELD>
85
                            </xsl:if>
86
                        </ROW>
87
                        <xsl:if test="string-length(.//column[@name='Institution']) &gt; 0">
88
                        <ROW table="dsm_organizations">
89
                            <FIELD name="_dnet_resource_identifier_">
90
                                <xsl:value-of select="$orgId"/>
91
                            </FIELD>
92
                            <FIELD name="id">
93
                                <xsl:value-of select="$orgId"/>
94
                            </FIELD>
95
                            <FIELD name="legalname">
96
                                <xsl:value-of select=".//column[@name='Institution']"/>
97
                            </FIELD>
98
                            <FIELD name="country">
99
                                <xsl:value-of select=".//column[@name='Institution Country']"/>
100
                            </FIELD>
101
                            <FIELD name="collectedfrom">
102
                                <xsl:value-of select="$varDataSourceId"/>
103
                            </FIELD>
104
                            <FIELD name="provenanceaction">sysimport:crosswalk:entityregistry</FIELD>
105

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

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

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

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

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

    
163
                    </xsl:if>
164
                </ROWS>
165
            </metadata>
166
        </record>
167
    </xsl:template>
168

    
169
</xsl:stylesheet>
170
]]>
171
				</CODE>
172
			</SCRIPT>
173
		</CONFIGURATION>
174
		<STATUS/>
175
		<SECURITY_PARAMETERS>SECURITY_PARAMETERS</SECURITY_PARAMETERS>
176
	</BODY>
177
</RESOURCE_PROFILE>
(22-22/25)